負載均衡算法有哪些?
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、 源地址散列調度 和目標地址散列調度類似,唯一的區別是按照源地址為散列函數的散列鍵。