輪叫調度

輪叫調度(Round Robin Scheduling)算法就是以輪叫的方式依次將請求調度不同的伺服器,即每次調度執行i = (i + 1) mod n,並選出第i台伺服器。算法的優點是其簡潔性,它無需記錄當前所有連線的狀態,所以它是一種無狀態調度。

基本介紹

  • 中文名:輪叫調度
  • 英文名:Round-Robin Scheduling
  • 特點:將一個域名解析到多個IP位址
  • 含義:依次將請求調度不同的伺服器
輪叫調度(Round-Robin Scheduling)
在系統實現時,我們引入了一個額外條件,當伺服器的權值為零時,表示該伺服器不可用而不被調度。這樣做的目的是將伺服器切出服務(如禁止伺服器故障和系統維護),同時與其他加權算法保持一致。所以,算法要作相應的改動,它的算法流程如下:
輪叫調度算法流程
假設有一組伺服器S = {S0, S1, …, Sn-1},一個指示變數i表示上一次選擇的
伺服器,W(Si)表示伺服器Si的權值。變數i被初始化為n-1,其中n > 0。
j = i;
do {
j = (j + 1) mod n;
if (W(Sj) > 0) {
i = j;
return Si;
}
} while (j != i);
returnNULL;
輪叫調度算法假設所有伺服器處理性能均相同,不管伺服器的當前連線數和回響速度。該算法相對簡單,不適用於伺服器組中處理性能不一的情況,而且當請求服務時間變化比較大時,輪叫調度算法容易導致伺服器間的負載不平衡。
雖然Round-Robin DNS方法也是以輪叫調度的方式將一個域名解析到多個IP位址,但輪叫DNS方法的調度粒度是基於每個域名伺服器的,域名伺服器對域名解析的快取會妨礙輪叫解析域名生效,這會導致伺服器間負載的嚴重不平衡。這裡,IPVS輪叫調度算法的粒度是基於每個連線的,同一用戶的不同連線都會被調度到不同的伺服器上,所以這種細粒度的輪叫調度要比DNS的輪叫調度優越很多。

相關詞條

熱門詞條

聯絡我們