基於DNS的負載均衡


基於DNS的負載均衡

  最早的負載均衡技術是通過DNS服務中的隨機名字解析來實現的。在DNS服務器中,可以為多個不同的地址配置同一個名字,這個數據被發送給其他名字服務器,而最終查詢這個名字的客戶機將在解析這個名字時隨機使用其中一個地址。因此,對於同一個名字,不同的客戶機會得到不同的地址,因此不同的客戶訪問的也就是不同地址的Web服務器,從而達到負載均衡的目的。

  例如假如希望使用三個Web服務器往返應對www.exampleorg.org.cn的HTTP請求,就可以設置該域的DNS服務器中關於該域的數據包括與下面例子類似的結果:

www1 IN A 192.168.1.1
www2 IN A 192.168.1.2
www3 IN A 192.168.1.3
www IN CNAME www1
www IN CNAME www2
www IN CNAME www3

  這里先為每個計算機定義一個真實名字,然后再為它們定義同一個別名。直接針對不同地址設置同一個真實名字(A記錄)也是可行的,但使用別名的方法易於治理一些。

  由於此時反向解析只能針對一台計算機,那么每個Web服務器都需要使用ServerName重新定義同一個名字,或者設置名字解析的順序為hosts文件優先,並在hosts文件中定義本身為www,以保證每個服務器的名字設置保持一致。

  此后外部的客戶機就可能隨機的得到對應www的不同地址,那么隨后的HTTP請求也就會發送給不同地址了。

  當使用DNS負載均衡的時候,必須盡量保證不同的客戶計算機能均勻獲得不同的地址。由於DNS數據是具備一個刷新時間的標志的,一旦超過這個時間限制過期,其他DNS服務器就需要和這個服務器交談以重新獲得地址數據,就有可能獲得不同IP地址。因此為了使得地址能隨機分配,就應該使得刷新時間盡量短,不同地方的DNS服務器能更新對應的地址,使得地址獲得能隨機一些。然而將過期時間設置的過低將使得DNS流量大增,而造成額外的網絡問題。出於折衷的考慮,一般將刷新時間設置為1個小時。

  DNS負載均衡的一個問題是一旦某個服務器出現故障,即使及時修改了DNS設置,還是要等待足夠的時間(刷新時間)才能發揮作用,在此期間保存了故障服務器地址的客戶計算機將不能正常訪問服務器。

  盡管存在多種問題,然而它還是一種非常有效的做法,當前使用在包括Yahoo在內的很多Web站點上。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM