前段時(shí)間有個(gè)客戶想要在他的幾臺(tái)全球服務(wù)器上搞DNS輪循,萬(wàn)事都是有利有弊,下面說(shuō)下這個(gè)問(wèn)題
大多數(shù)域名注冊(cè)商都支持對(duì)統(tǒng)一主機(jī)添加多條A記錄,這就是DNS輪循,DNS服務(wù)器將解析請(qǐng)求按照A記錄的順序,隨機(jī)分配到不同的IP上,這樣就完成了簡(jiǎn)單的負(fù)載均衡。下圖的例子是:有3臺(tái)聯(lián)通服務(wù)器、3臺(tái)電信服務(wù)器,要實(shí)現(xiàn)“聯(lián)通用戶流量分?jǐn)偟?臺(tái)聯(lián)通服務(wù)器、其他用戶流量分?jǐn)偟诫娦欧⻊?wù)器”這個(gè)效果的設(shè)置。
DNS由于成本較低,所以一般在小型的網(wǎng)站用的比較多。但是大型的網(wǎng)站一般也會(huì)將用它和其他負(fù)載均衡的方式結(jié)合起來(lái)一起使用,DNS輪詢方式提供的IP地址,在大型網(wǎng)站中往往是一個(gè)集群的地址,可能是均衡交換機(jī)也可能是均衡服務(wù)器。對(duì)于小網(wǎng)站的話,掛接多臺(tái)服務(wù)器也沒(méi)有問(wèn)題。如:
DNS輪詢的優(yōu)點(diǎn):
- 零成本:只是在DNS服務(wù)器上綁定幾個(gè)A記錄,域名注冊(cè)商一般都免費(fèi)提供解析服務(wù);
- 部署簡(jiǎn)單:就是在網(wǎng)絡(luò)拓?fù)溥M(jìn)行設(shè)備擴(kuò)增,然后在DNS服務(wù)器上添加記錄。
DNS輪詢的缺點(diǎn):
1、可靠性低
假設(shè)一個(gè)域名DNS輪詢多臺(tái)服務(wù)器,如果其中的一臺(tái)服務(wù)器發(fā)生故障,那么所有的訪問(wèn)該服務(wù)器的請(qǐng)求將不會(huì)有所回應(yīng),這是任何人都不愿意看到的。即使從DNS中去掉該服務(wù)器的IP,但在Internet上,各地區(qū)電信、網(wǎng)通等寬帶接入商將眾多的DNS存放在緩存中,以節(jié)省訪問(wèn)時(shí)間,DNS記錄全部生效需要幾個(gè)小時(shí),甚至更久。所以,盡管DNS輪詢?cè)谝欢ǔ潭壬辖鉀Q了負(fù)載均衡問(wèn)題,但是卻存在可靠性不高的缺點(diǎn)。
2、負(fù)載分配不均勻(有,但不會(huì)有那么大的影響)
DNS負(fù)載均衡采用的是簡(jiǎn)單的輪詢算法,不能區(qū)分服務(wù)器的差異,不能反映服務(wù)器的當(dāng)前運(yùn)行狀態(tài),不能做到為性能較好的服務(wù)器多分配請(qǐng)求,甚至?xí)霈F(xiàn)客戶請(qǐng)求集中在某一臺(tái)服務(wù)器上的情況。
DNS服務(wù)器是按照一定的層次結(jié)構(gòu)組織的,本地DNS服務(wù)器會(huì)緩存已解析的域名到IP地址的映射,這會(huì)導(dǎo)致使用該DNS服務(wù)器的用戶在一段時(shí)間內(nèi)訪問(wèn)的是同一臺(tái)Web服務(wù)器,導(dǎo)致Web服務(wù)器間的負(fù)載不均勻。此外,用戶本地計(jì)算機(jī)也會(huì)緩存已解析的域名到IP地址的映射。當(dāng)多個(gè)用戶計(jì)算機(jī)都緩存了某個(gè)域名到IP地址的映射時(shí),而這些用戶又繼續(xù)訪問(wèn)該域名下的網(wǎng)頁(yè),這時(shí)也會(huì)導(dǎo)致不同Web服務(wù)器間的負(fù)載分配不均勻。
負(fù)載不均勻可能導(dǎo)致的后果有:某幾臺(tái)服務(wù)器負(fù)荷很低,而另幾臺(tái)服務(wù)器負(fù)載很高、處理緩慢;配置高的服務(wù)器分配到的請(qǐng)求少,而配置低的服務(wù)器分配到的請(qǐng)求多。