发信人: 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)
页面执行时间:2.302毫秒