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