lvs的排程方法有十幾中,每種方法的排程標準和適用場景不同。大體有兩大類,分別為固定排程方法或稱為靜態排程方法,另一類是動態排程方法。
常用的具體演算法有十種。
1.輪詢排程(rr)
將所有請求平均的分發到每個集群節點上,即輪流排程。
2.加權輪詢排程(wrr)
由於不同的伺服器效能不同,因此要考慮讓效能高的節點多承擔一些請求,這就需要定義每個節點的權重。排程器根據該節點的權重來判斷分發給它的請求量。
也就是以多個節點它們之間的權重比例來分發。
3.源位址hash(sourcehash,sh)
用於實現會話繫結到某個具體節點。根據請求的**位址進行請求的分發,用於實現將某個客戶端的所有請求都分發到乙個固定的伺服器上,
與nginx中的ip_hash演算法一樣,也是根據客戶端ip的hash值來計算請求**的目標節點。只要客戶端ip沒有改變,以後的所有請求都**到乙個
固定的伺服器節點。
這種排程演算法在一定程度上會破壞公平排程的效果,但是請求量越大則排程也就越公平。主要為了實現將某個客戶端的會話一直鎖定在某個節點,
這樣利用保持session,從而避免需要做多個節點的session複製。因為http是無狀態的協議,多個請求之間沒有關係,為了能夠表示出請求與上一次
請求的關係,就通過將sessionid寫入cookie的方式來實現對客戶端多次請求的標識,也就是使用cookie來實現服務端對客戶端的追蹤。
在這種機制中,如果某個伺服器節點掛了,那麼使用者的session也就丟失了,此時使用者再請求時director發現該客戶端對應的節點掛了,就會將該
請求重新**到其它節點,但是使用者發現儲存在session中的資料丟失了。為了避免這種情況,可以在多個伺服器節點之間使用session複製,或使用
乙個公共的session伺服器。如果是了session複製或session伺服器,就可以不再使用sh這種排程演算法了。
4.目標位址hash(destination hash)
用於將同一型別的請求**到乙個固定節點,例如將以 .jgp、.png等結尾的請求**到同乙個節點。這種演算法其實不是為了真正意義的負載均衡,
而是為了資源的分類管理。這種排程演算法主要應用在使用了快取節點的系統中。例如a使用者訪問 .html時被**到後端的某個快取伺服器,當快取中沒有
時就訪問後端的web伺服器,並且響應使用者後將該資源放入html的快取伺服器;b使用者再請求某個html時,依然被**到html的快取伺服器,這樣b使用者
就可以直接獲取這個資源而不用再請求後端web伺服器。
因此,目標位址hash這種演算法將同一類請求都**到乙個固定節點上,一般應用在快取系統中,為了提高快取命中率。
以上的四種排程演算法被稱為靜態排程演算法,注意是因為它們進行排程時不考慮後端伺服器是空閒還是繁忙,也就是不考慮後端伺服器當前的負載量,
如果還是才有靜態排程演算法,就會造成伺服器的負載不均衡情況的發生,因此就有了動態排程演算法。
LVS排程演算法
演算法 說明 rr 輪詢排程 round robin 它將請求一次分配不同的 rs,也就是在rs中均攤請求,演算法簡單,但是只適合於rs處理效能相差不大的情況 多個伺服器硬體配置差不多 wrr加權輪詢排程 weighted round robin 它根據rs不同的權值分配任務,權值高的rs優先獲得請...
LVS 排程演算法
排程器通過 輪叫 排程演算法將外部請求按順序輪流分配到集群中的真實伺服器上,它均等地對待每一台伺服器,而不管伺服器上實際的連線數和系統負載。排程器通過 加權輪叫 排程演算法根據真實伺服器的不同處理能力來排程訪問請求。這樣可以保證處理能力強的伺服器能處理更多的訪問流量。排程器可以自動問詢真實伺服器的負...
LVS 排程演算法
負載均衡排程演算法 1 輪詢 round robin 簡稱 rr 將客戶端請求平均分發到real server 2加權輪詢 weighted round robin 簡稱 wrr 根據real server 的效能設定權重,在進行輪詢排程 3最少連線 least connections 簡稱 lc ...