一、輪叫調度(RoundRobin Scheduling )
(1)輪叫的方式依次將請求調度不同的服務器
(2)算法的優點是其簡潔性,它無需記錄當前所有連接的狀態,所以它是一種無狀態調度。
二、加權輪叫調度(Weighted RoundRobin Scheduling )
(1)解決服務器間性能不一的情況,
(2)按權值的高低和輪叫方式分配請求到各服務器。權值高的服務器先收到的連接,權值高的服 務器比權值低的服務器處理更多的連接,相同權值的服務器處理相同數目的連接數。
三、最小連接調度(LeastConnection Scheduling )
(1)把新的連接請求分配到當前連接數最小的服務器。
(2)一種動態調度算法,它通過服務器當前所活躍的連接數來估計服 務 器的負載情況。調度器需要記錄各個服務器已建立連接的數目,當一個請求被調度到某臺服務器,其連接數加 1;當連接中止或超時,其連接數減一。
四、 加權最小連接調度(Weighted LeastConnection Scheduling)
(1)最小連接調度的超集,各個服務器用相應的權值表示其處理性能。
(2)服務器的缺省權值為1,系統管理員可以動態地設置服務器的權 值。
(3)加權最小連接調度在調度新連接時盡可能使服務器的已建立連接數和其權值成比例。
五、基于局部性的最少鏈接(LocalityBased Least Connections Scheduling )
(1)簡稱LBLC算法,針對請求報文的目標 IP 地址的負載均衡調度,目前主要用于 Cache 集群系統,因為在 Cache 集群中 客戶請求報文的目標 IP 地址是變化的。
(2)假設任何后端服務器都可以處理任一請求,算法的設計目標是在服務器的負載基本平衡情況下,將相同目標IP地址的請求調度到同一臺服務器,來提高各臺服務器的訪問局部性和主存 Cache 命中率,從而整個集群系統的處理能力。
(3)LBLC調度算法先根據請求的目標IP地址找出該目標IP地址最近使用的服務器,若該服務器是可用的且沒有超載,將請求發送到該服務器;若服務器不存在,或者該服務器超載且有服務器處于其一半的工作負載,則用 “ 最少鏈接 ” 的原則選出一個可用的服務器,將請求發送到該服務器。
六、帶復制的基于局部性最少鏈接(LocalityBased Least Connections with Replication Scheduling)
(1)簡稱 LBLCR算法,也是針對目標 IP 地址的負載均衡,目前主要用于 Cache集群系統。它與 LBLC 算法的不同之處是它要維護從一個目標 IP 地址到一組服務器的映射。
(2)LBLCR 算法先根據請求的目標 IP 地址找出該目標 IP 地址對應的服務器組;按 “ 最小連接 ” 原則從該服務器組中選出一臺服務器,若服務器沒有超載,將請求發送到該服務器;若服務器超載;則按 “ 最小連接 ” 原則從整個集群中選出一臺服務器,將該服務器加入到服務器組中,將請求發送到該服務器。同時,當該服務器組有一段時間沒有被修改,將最忙的服 務器從服務器組中刪除,以降低復制的程度。
七、目標地址散列調度(Destination Hashing Scheduling)
(1)針對目標 IP 地址的負載均衡,但它是一種靜態映射算法,通過一個散列(Hash)函數將一個目標 IP 地址映射到一臺服務器。
(2)目標地址散列調度算法先根據請求的目標 IP 地址,作為散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,否則返回空。
八、源地址散列調度(Source Hashing Scheduling)
(1)源地址散列調度(Source Hashing Scheduling)算法正好與目標地址散列調度算法相反
(2)它根據請求的源 IP 地址,作為散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,否則返回空。
(3)它采用的散列函數與目標地址散列調度算法 的相同。它的算法流程與目標地址散列調度算法的基本相似,除了將請求的目標 IP 地址換成請求的源 IP 地址。
(4)在實際應用中,源地址散列調度和目標地址散列調度可以結合使用在防火墻集群中,它們可以保證整個系統的唯一出入口。