发信人: tcpip (俺的昵称改了), 信区: cnunix
标 题: server cluster狂想曲(2)
发信站: 哈工大紫丁香 (Sun Sep 26 16:15:35 1999), 转信
发信人: cpu (奔腾的心), 信区: Solaris
发信站: 华南网木棉站 (Thu Jan 7 16:06:11 1999), 转信
从dns作文章, 就要改bind, 让域名解析每次解析出不同的IP, 使客户端的每次
连接请求命中cluster中不同的server, 达到负载均衡的目的, 我猜测163就是这么
做的, 用nslookup工具就可以看出来了:
(gnet-gz)/export/home/digger%nslookup
Default Server: dnsgz.gnet.gd.cn
Address: 172.18.95.2
>www.163.net
Server: dnsgz.gnet.gd.cn
Address: 172.18.95.2
Non-authoritative answer:
Name: www.163.net
Addresses: 202.103.129.5, 202.103.129.7, 202.103.129.15, 202.103.129.3
> www.163.net
Server: dnsgz.gnet.gd.cn
Address: 172.18.95.2
Non-authoritative answer:
Name: www.163.net
Addresses: 202.103.129.7, 202.103.129.15, 202.103.129.3, 202.103.129.5
> www.163.net
Server: dnsgz.gnet.gd.cn
Address: 172.18.95.2
Non-authoritative answer:
Name: www.163.net
Addresses: 202.103.129.15, 202.103.129.3, 202.103.129.5, 202.103.129.7
> www.163.net
Server: dnsgz.gnet.gd.cn
Address: 172.18.95.2
Non-authoritative answer:
Name: www.163.net
Addresses: 202.103.129.3, 202.103.129.5, 202.103.129.7, 202.103.129.15
每次域名解析都会送回四个IP, 但每次的顺序都不一样, 用过gethostbyname调用的
网友都知道, gethostbyname的返回的IP序列往往只有第一个会被取出来connect,
这样dns上作的文章就造成了cluster端负载的均衡.
我没有看过bind的原码, 一开始想到了改bind来解决问题, 但后来又觉得不大可行,
因为域名解析的结果有可能只从离自己最近的dns的cache中取出来, 那么cache里的
IP顺序会每次改变吗? nslookup结果说明了163的确做到了这一点: 绕过cache? 欢
迎对bind有研究的虫子补充论点
--
假如你看我有点累
就请你给我倒碗水
假如你已经爱上我
就请你吻我的嘴
※ 修改:.trueip 于 Sep 26 16:19:16 修改本文.[FROM: dns.mtlab.hit.ed]
--
※ 转寄:.华南网木棉站 bbs.gznet.edu.cn.[FROM: dns.mtlab.hit.ed]
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: trueip.bbs@melon.gzn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.667毫秒