實現
負載平衡實現的兩種主要類別是:
•基于軟件的負載平衡?;谲浖呢撦d平衡包括在負載平衡群集中安裝在服務器上的特殊軟件。軟件根據不同的算法分派或接受客戶端向服務器發出的請 求。算法可以是簡單的循環算法,也可以是考慮服務器關系的更復雜的算法。例如,Microsoft® Network Load Balancing 是用于 Web 場的負載平衡軟件,而 Microsoft Component Load Balancing 是用于應用程序場的負載平衡軟件。
•基于硬件的負載平衡?;谟布呢撦d平衡是由以軟件為其提供負載平衡功能的專用交換機或路由器組成的。此解決方案將交換功能和負載平衡功能集成到 單個設備中,從而減少了實現負載平衡所需的額外硬件數量。但是,將這兩項功能組合在一起,也會使設備的故障排除工作變得更困難。
示例
為了幫助您更好地了解如何使用負載平衡實現可伸縮性,下面的討論將現有的非負載平衡解決方案(該方案在應用程序層中包含單個系統,即故障單點)與保持性能并提供可用性的高伸縮解決方案進行比較。
非負載平衡層
一開始,組織可能采用類似于圖 4 中所描述的解決方案體系結構,該體系結構可能滿足最初的性能要求。但是,隨著負載的增加,應用程序層必須適應增加的負載,才能保持可接受的性能。
圖 4:具有單臺應用程序服務器的基本解決方案
在圖 4 中,應用程序層只包含一臺為客戶端請求提供服務的應用程序服務器 (AppServer20)。如果該服務器超載,則解決方案的性能將降至不可接受的級別,或變得不可用。
負載平衡層
要提高可伸縮性并保持性能,組織可能會使用負載平衡器來擴展應用程序層。在下面的示例(如圖 5 所示)中,將兩臺服務器添加到應用程序層以創建負載平衡群集,該群集將訪問數據層數據,并為客戶端層中的客戶端提供對應用程序的訪問服務。
圖 5:具有可伸縮應用程序層的解決方案
這將得到一個標準的負載平衡設計。硬件設備或運行在主機上的軟件將虛擬主機名 (AppServer20) 和 IP 地址分配給 AppServer1、AppServer2 和 AppServer3。負載平衡的群集向網絡公開此虛擬 IP 地址和主機名,并在組內的正常運行服務器之間均衡地分配傳入請求的負載。如果 AppServer1 出現故障,則只需將請求定向到 AppServer2 或 AppServer3 即可。取決于提供此功能的技術,可以將一定數目的額外服務器添加到負載平衡的群集中,以最大限度地提高可伸縮性,并超前滿足不斷增長的需求。
總結
Load-Balanced Cluster 模式具有下列優缺點:
優點
•改進的可伸縮性??缮炜s的負載平衡層使系統可以在提高可用性的同時保持可接受的性能級別。
•更高的可用性。通過負載平衡,可以使服務器脫機進行維護,而不會讓應用程序不可用。
•可能會降低成本。與更高成本的多處理器系統相比,多臺低成本服務器通常會降低成本。
缺點
•開發過程復雜。如果解決方案必須維護各個事務或用戶的狀態,則開發負載平衡的解決方案會是很困難的。
•沒有解決網絡故障問題。如果在客戶端會話過程中服務器或網絡出現故障,則可能需要重新登錄才能重新驗證客戶端和重新建立會話狀態。
原文轉自:http://blog.sina.com.cn/s/blog_c34954a30101tkhl.html