1. 如何實現負載均衡,哪些演算法可以實現
1、輪詢調度
輪詢調度演算法就是以輪詢的方式依次將請求調度到不同的伺服器,即每次調度執行i = (i + 1) mod n,並選出第i台伺服器。演算法的優點是其簡潔性,它無需記錄當前所有連接的狀態,所以它是一種無狀態調度。
2、最小連接調度
最小連接調度演算法是把新的連接請求分配到當前連接數最小的伺服器。最小連接調度是一種動態調度演算法,它通過伺服器當前所活躍的連接數來估計伺服器的負載情況。
在實際實現過程中,一般會為每台伺服器設定一個權重值,這就是加權最小連接
3、 基於局部性的最少鏈接(LBLC)
基於局部性的最少鏈接調度(以下簡稱為LBLC)演算法是針對請求報文的目標IP地址的負載均衡調度,目前主要用於Cache集群系統,因為在Cache集群中客戶請求報文的目標IP地址是變化的。
LBLC調度演算法先根據請求的目標IP地址找出該目標IP地址最近使用的伺服器,若該伺服器是可用的且沒有超載,將請求發送到該伺服器; 若伺服器不存在,或伺服器超載或有伺服器處於其一半的工作負載,則用「最少鏈接」的原則選出一個可用的伺服器,將請求發送到該伺服器。
4、帶復制的基於局部性最少鏈接(LBLCR)
帶復制的基於局部性最少鏈接調度以下簡稱為LBLCR)演算法也是針對目標IP地址的負載均衡,目前主要用於Cache集群系統。它與LBLC演算法的不同之處是它要維護從一個目標IP地址到一組伺服器的映射,而LBLC演算法維護從一個目標IP地址到一台伺服器的映射。
LBLCR調度演算法將「熱門」站點映射到一組Cache伺服器(伺服器集合),當該「熱門」站點的請求負載增加時,會增加集合里的Cache伺服器,來處理不斷增長的負載; 當該「熱門」站點的請求負載降低時,會減少集合里的Cache伺服器數目。
5、目標地址散列調度
目標地址散列調度演算法是針對目標IP地址的負載均衡,但它是一種靜態映射演算法,通過一個散列(Hash)函數將一個目標IP地址映射到一台伺服器。
目標地址散列調度演算法先根據請求的目標IP地址,作為散列從靜態分配的散列表找出對應的伺服器,若該伺服器是可用的且未超載,將請求發送到該伺服器,否則返回空。
6、 源地址散列調度
和目標地址散列調度類似,唯一的區別是按照源地址為散列函數的散列鍵。