當前,無論在企業網、園區網還是在廣域網如Internet上,業務量的發展都超出了過去最樂觀的估計,上網熱潮風起云涌,新的應用層出不窮,即使按照當時最優配置建設的網絡,也很快會感到吃不消。尤其是各個網絡的核心部分,其數據流量和計算強度之大,使得單一設備根本無法承擔,而如何在完成同樣功能的多個網絡設備之間實現合理的業務量分配,使之不致于出現一臺設備過忙、而別的設備卻未充分發揮處理能力的情況,就成了一個問題,負載均衡機制也因此應運而生。
負載均衡建立在現有網絡結構之上,它提供了一種廉價有效的方法擴展服務器帶寬和增加吞吐量,加強網絡數據處理能力,提高網絡的靈活性和可用性。它主要完成以下任務:解決網絡擁塞問題,服務就近提供,實現地理位置無關性;為用戶提供更好的訪問質量;提高服務器響應速度;提高服務器及其他資源的利用效率;避免了網絡關鍵部位出現單點失效。
在負載均衡的思路下,多臺服務器為對稱方式,每臺服務器都具有同等的地位,可以單獨對外提供服務而無須其他服務器的輔助。通過負載分擔技術,將外部發送來的請求按一定規則分配到對稱結構中的某一臺服務器上,而接收到請求的服務器都獨立回應客戶機的請求。
提供服務的一組服務器組成了一個應用服務器集群(cluster),并對外提供一個統一的地址。當一個服務請求被發至該集群時,根據一定規則選擇一臺服務器,并將服務轉定向給該服務器承擔,即將負載進行均衡分攤。
通過應用負載均衡技術,使應用服務超過了一臺服務器只能為有限用戶提供服務的限制,可以利用多臺服務器同時為大量用戶提供服務。當某臺服務器出現故障時,負載均衡服務器會自動進行檢測并停止將服務請求分發至該服務器,而由其他工作正常的服務器繼續提供服務,從而保證了服務的可靠性。
上述的集群技術一般都用于Web服務器、應用服務器等,而不是用于數據庫服務器,即不是用于有共享的存儲的服務。數據庫服務器將涉及到加鎖、回滾等一系列問題,要復雜的多。一般數據庫服務器只是使用雙機,其中一臺工作,另一臺備份。數據庫的雙機并行只用于大型數據庫中。
負載均衡實現的方法有幾種:
■最簡單的是通過DNS,但只能實現簡單的輪流分配,也不能處理故障。
■如果是基于MS IIS,Windows 2003 Server本身就帶了負載均衡服務。但這一服務也只是輪流分配。
■硬件方式,通過交換機的功能或專門的負載均衡設備可以實現。對于流量的分配可以有多種方式,但基本上都是應用無關的,與服務器的實現負載關系也不大。另外,設備的價格較貴(優點是能支持很多臺服務器)。這種方式往往適合大流量、簡單應用。
■軟件方式,通過一臺負載均衡服務器進行,上面安裝軟件。這種方式比較靈活,成本相對也較低。另外一個很大的優點就是可以根據應用的情況和服務器的情況采取一些策略。
關于負載均衡中比較高級的功能是FailOver,即一臺出現故障時,在這臺服務器上正在進行中的進程也會被其他服務器接過去。相應的成本也很高,一般是要象WebLogic、WebSphere軟件的群集版本才支持。