三種負載均衡技術的介紹
基于負載均衡原理的各種技術應用,給不同領域的工作帶來新的規劃概念。那么,在此,我們就以三種負載均衡技術來進行一下介紹。通過這些技術的介紹,我們能了解到這些技術領域的策略有和新的改動。
反向代理負載均衡技術
使用代理服務器可以將請求轉發給內部的Web服務器,使用這種加速模式顯然可以提升靜態網頁的訪問速度。因此也可以考慮使用這種技術,讓代理服務器將請求均勻轉發給多臺內部Web服務器之一上,從而達到負載均衡的目的。這種代理方式與普通的代理方式有所不同,標準代理方式是客戶使用代理訪問多個外部Web服務器,而這種代理方式是多個客戶使用它訪問內部Web服務器,因此也被稱為反向代理模式。
實現這個反向代理能力并不能算是一個特別復雜的任務,但是在負載均衡中要求特別高的效率,這樣實現起來就不是十分簡單的了。每針對一次代理,代理服務器就必須打開兩個連接,一個為對外的連接,一個為對內的連接,因此對于連接請求數量非常大的時候,代理服務器的負載也就非常之大了,在最后反向代理服務器會成為服務的瓶頸。
例如,使用Apache的mod_rproxy模塊來實現負載均衡功能時,提供的并發連接數量受Apache本身的并發連接數量的限制。一般來講,可以使用它來對連接數量不是特別大,但每次連接都需要消耗大量處理資源的站點進行負載均衡,例如搜尋。
使用反向代理的好處是,可以將負載均衡和代理服務器的高速緩存技術結合在一起,提供有益的性能,具備額外的安全性,外部客戶不能直接訪問真實的服務器。并且實現起來可以實現較好的負載均衡策略,將負載可以非常均衡的分給內部服務器,不會出現負載集中到某個服務器的偶然現象。
基于NAT的負載均衡技術
網絡地址轉換為在內部地址和外部地址之間進行轉換,以便具備內部地址的計算機能訪問外部網絡,而當外部網絡中的計算機訪問地址轉換網關擁有的某一外部地址時,地址轉換網關能將其轉發到一個映射的內部地址上。因此如果地址轉換網關能將每個連接均勻轉換為不同的內部服務器地址,此后外部網絡中的計算機就各自與自己轉換得到的地址上服務器進行通信,從而達到負載分擔的目的。
地址轉換可以通過軟件方式來實現,也可以通過硬件方式來實現。使用硬件方式進行操作一般稱為交換,而當交換必須保存TCP連接信息的時候,這種針對OSI網絡層的操作就被稱為第四層交換。支持負載均衡的網絡地址轉換為第四層交換機的一種重要功能,由于它基于定制的硬件芯片,因此其性能非常優秀,很多交換機聲稱具備400MB-800MB的第四層交換能力。
使用軟件方式來實現基于網絡地址轉換的負載均衡則要實際的多,除了一些廠商提供的解決方法之外,更有效的方法是使用免費的自由軟件來完成這項任務。其中包括Linux Virtual Server Project中的NAT實現方式,或者本文作者在FreeBSD下對natd的修訂版本。一般來講,使用這種軟件方式來實現地址轉換,中心負載均衡器存在帶寬限制,在100MB的快速以太網條件下,能得到最快達80MB的帶寬,然而在實際應用中,可能只有40MB-60MB的可用帶寬。
擴展的負載均衡技術
使用網絡地址轉換來實現負載分擔,毫無疑問所有的網絡連接都必須通過中心負載均衡器,那么如果負載特別大,以至于后臺的服務器數量不再在是幾臺、十幾臺,而是上百臺甚至更多,即便是使用性能優秀的硬件交換機也會遇到瓶頸。此時問題將轉變為,如何將那么多臺服務器分布到各個互聯網的多個位置,分散網絡負擔。當然這可以通過綜合使用DNS和NAT兩種方法來實現,然而更好的方式是使用一種半中心的負載均衡方式。
在這種半中心的負載均衡方式下,即當客戶請求發送給負載均衡器的時候,中心負載均衡器將請求打包并發送給某個服務器,而服務器的回應請求不再返回給中心負載均衡器,而是直接返回給客戶,因此中心負載均衡器只負責接受并轉發請求,其網絡負擔就較小了。
同樣,這種方式的硬件實現方式也非常昂貴,但是會根據廠商的不同,具備不同的特殊功能,例如對SSL的支持等。
由于這種方式比較復雜,因此實現起來比較困難,它的起點也很高,當前情況下網站并不需要這么大的處理能力。