![]() |
| 新浪首頁 > 科技時代 > FreeBSD使用大全連載 > FreeBSD連載(92):基于DNS的負載均衡 |
![]() |
負載均衡技朮可以使用上面提到的各種技朮來提升Apache服務器的性能,同時也可以使用增加硬件性能的方法來提高Web 服務器的性能。但是單台服務器的性能總是有限的,尤其是服務器上需要運行大量的CGI程序時,不可能僅靠上面的調整服 務器設置的方法來建立一個面向整個Internet,如同Yahoo等站點一樣的高負載Web站點。 為了建立一個高負載的Web站點,必須使用多服務器的分布式結構。上面提到的使用代理服務器和Web服務器相 結合,或者兩個Web服務器相互協作的方式也屬于多服務器的結構,但在這些多服務器的結構中,每個服務器所起到的作用 是不同的,屬于非對稱的體系結構。非對稱的服務器結構中每個服務器起到的作用是不同的,例如一個服務器用于提供靜態網 頁,而另一個用于提供動態網頁等等,這樣就使得網頁設計時就需要考慮不同服務器之間的關系,一旦要改變服務器之間的關 系,就會使得某些網頁出現連接錯誤,不利于維護,可擴展性也差。 另外一種多服務器的設計結構為對稱結構,在對稱結構中每台服務器都具備等價的地位,都可以單獨對外提供服務而 無須其他服務器的輔助。然后,可以通過某種技朮,將外部發送來的請求均勻分配到對稱結構中的每台服務器上,接收到連接 請求的服務器都獨立回應客戶的請求。在這種結構中,將外部請求均勻分配到服務器上的技朮稱為負載均衡技朮,由于建立內 容完全一致的Web服務器并不困難,因此負載均衡技朮就成為建立一個高負載Web站點的關鍵性技朮。
最早的負載均衡技朮是通過DNS服務中的隨機名字解析來實現的。在DNS服務器中,可以為多個不同的地址配置 同一個名字,這個數據被發送給其他名字服務器,而最終查詢這個名字的客戶機將在解析這個名字時隨機使用其中一個地址。 因此,對于同一個名字,不同的客戶機會得到不同的地址,因此不同的客戶訪問的也就是不同地址的Web服務器,從而達到 負載均衡的目的。
例如如果希望使用三個Web服務器來回應對www.exampleorg.org.cn的HTTP請求,就可 以設置該域的DNS服務器中關于該域的數據包括與下面例子類似的結果:
這里先為每個計算機定義一個真實名字,然后再為它們定義同一個別名。直接針對不同地址設置同一個真實名字 (A記錄)也是可行的,但使用別名的方法易于管理一些。 由于此時反向解析只能針對一台計算機,那么每個Web服務器都需要使用ServerName重新定義同一個名 字,或者設置名字解析的順序為hosts文件優先,并在hosts文件中定義本身為www,以保証每個服務器的名字設 置保持一致。 此后外部的客戶機就可能隨機的得到對應www的不同地址,那么隨后的HTTP請求也就會發送給不同地址了。 當使用DNS負載均衡的時候,必須盡量保証不同的客戶計算機能均勻獲得不同的地址。由于DNS數據是具備一個 刷新時間的標志的,一旦超過這個時間限制過期,其他DNS服務器就需要和這個服務器交談以重新獲得地址數據,就有可能 獲得不同IP地址。因此為了使得地址能隨機分配,就應該使得刷新時間盡量短,不同地方的DNS服務器能更新對應的地址 ,使得地址獲得能隨機一些。然而將過期時間設置的過低將使得DNS流量大增,而造成額外的網絡問題。出于折衷的考慮, 一般將刷新時間設置為1個小時。 DNS負載均衡的一個問題是一旦某個服務器出現故障,即使及時修改了DNS設置,還是要等待足夠的時間(刷新 時間)才能發揮作用,在此期間保存了故障服務器地址的客戶計算機將不能正常訪問服務器。 盡管存在多種問題,然而它還是一種非常有效的做法,當前使用在包括Yahoo在內的很多Web站點上。 未完,待續。。。 |
||||
| 新浪首頁 > 科技時代 > FreeBSD使用大全連載 > FreeBSD連載(92):基于DNS的負載均衡 | |||||
Copyright(C) 1999 SINA.com, Stone Rich Sight. All Rights Reserved
版權所有 四通利方 新浪網