負(fù)載平衡技術(shù)的兩種方式
負(fù)載平衡技術(shù)的使用在很多系統(tǒng)中,或者是網(wǎng)絡(luò)層面,硬件產(chǎn)品,軟件產(chǎn)品中都有所體現(xiàn)。重要的是,對于網(wǎng)絡(luò)服務(wù)器的管理它肯定是個高手。那么,到底有哪些種類呢?現(xiàn)在就來為大家介紹一下關(guān)于負(fù)載平衡技術(shù)的分類吧。
基于域名系統(tǒng)的負(fù)載平衡
NCSA的可擴(kuò)展Web是最早使用動態(tài)DNS輪詢技術(shù)的web系統(tǒng)。在DNS中為多個地址配置同一個名字,因而查詢這個名字的客戶機(jī)將得到其中一個地址,從而使得不同的客戶訪問不同的服務(wù)器,達(dá)到負(fù)載平衡的目的。在很多知名的web站點都使用了這個技術(shù):包括早期的yahoo站點、163等。動態(tài) DNS輪詢實現(xiàn)起來簡單,無需復(fù)雜的配置和管理,一般支持bind8.2以上的類unix系統(tǒng)都能夠運行,因此廣為使用。
DNS負(fù)載平衡是一種簡單而有效的方法,但是存在不少問題。
首先域名服務(wù)器無法知道服務(wù)結(jié)點是否有效,如果服務(wù)結(jié)點失效,余名系統(tǒng)依然會將域名解析到該節(jié)點上,造成用戶訪問失效。
其次,由于DNS的數(shù)據(jù)刷新時間TTL(Time to LIVE)標(biāo)志,一旦超過這個TTL,其他DNS服務(wù)器就需要和這個服務(wù)器交互,以重新獲得地址數(shù)據(jù),就有可能獲得不同IP地址。因此為了使地址能隨機(jī)分配,就應(yīng)使TTL盡量短,不同地方的DNS服務(wù)器能更新對應(yīng)的地址,達(dá)到隨機(jī)獲得地址。然而將TTL設(shè)置得過短,將使DNS流量大增,而造成額外的網(wǎng)絡(luò)問題。
最后,它不能區(qū)分服務(wù)器的差異,也不能反映服務(wù)器的當(dāng)前運行狀態(tài)。當(dāng)使用DNS負(fù)載平衡的時候,必須盡量保證不同的客戶計算機(jī)能均勻獲得不同的地址。例如,用戶A可能只是瀏覽幾個網(wǎng)頁,而用戶B可能進(jìn)行著大量的下載,由于域名系統(tǒng)沒有合適的負(fù)載策略,僅僅是簡單的輪流均衡,很容易將用戶A的請求發(fā)往負(fù)載輕的站點,而將B的請求發(fā)往負(fù)載已經(jīng)很重的站點。因此,在動態(tài)平衡特性上,動態(tài)DNS輪詢的效果并不理想。
高層協(xié)議內(nèi)容交換技術(shù)
除了上述的幾種負(fù)載平衡技術(shù)之外,還有在協(xié)議內(nèi)部支持負(fù)載平衡能力的技術(shù),即URL交換或七層交換,提供了一種對訪問流量的高層控制方式。Web內(nèi)容交換技術(shù)檢查所有的HTTP報頭,根據(jù)報頭內(nèi)的信息來執(zhí)行負(fù)載平衡的決策。例如可以根據(jù)這些信息來確定如何為個人主頁和圖像數(shù)據(jù)等內(nèi)容提供服務(wù),常見的有HTTP協(xié)議中的重定向能力等。
HTTP運行于TCP連接的最高層??蛻舳送ㄟ^恒定的端口號80的TCP服務(wù)直接連接到服務(wù)器,然后通過TCP連接向服務(wù)器端發(fā)送一個HTTP請求。協(xié)議交換根據(jù)內(nèi)容策略來控制負(fù)載,而不是根據(jù)TCP端口號,所以不會造成訪問流量的滯留。
由于負(fù)載平衡設(shè)備要把進(jìn)入的請求分配給多個服務(wù)器,因此,它只能在TCP連接時建立,且HTTP請求通過后才能確定如何進(jìn)行負(fù)載的平衡。當(dāng)一個網(wǎng)站的點擊率達(dá)到每秒上百甚至上千次時,TCP連接、HTTP報頭信息的分析以及進(jìn)程的時延已經(jīng)變得很重要了,要盡一切可能提高這幾各部份的性能。
在HTTP請求和報頭中有很多對負(fù)載平衡有用的信息。我們可以從這些信息中獲知客戶端所請求的URL和網(wǎng)頁,利用這個信息,負(fù)載平衡設(shè)備就可以將所有的圖像請求引導(dǎo)到一個圖像服務(wù)器,或者根據(jù)URL的數(shù)據(jù)庫查詢內(nèi)容調(diào)用CGI程序,將請求引導(dǎo)到一個專用的高性能數(shù)據(jù)庫服務(wù)器。
如果網(wǎng)絡(luò)管理員熟悉內(nèi)容交換技術(shù),他可以根據(jù)HTTP報頭的cookie字段來使用Web內(nèi)容交換技術(shù)改善對特定客戶的服務(wù),如果能從HTTP請求中找到一些規(guī)律,還可以充分利用它作出各種決策。除了TCP連接表的問題外,如何查找合適的HTTP報頭信息以及作出負(fù)載平衡決策的過程,是影響Web內(nèi)容交換技術(shù)性能的重要問題。如果Web服務(wù)器已經(jīng)為圖像服務(wù)、SSL對話、數(shù)據(jù)庫事務(wù)服務(wù)之類的特殊功能進(jìn)行了優(yōu)化,那么,采用這個層次的流量控制將可以提高網(wǎng)絡(luò)的性能。