5大負載均衡演演算法 (原理圖解)

2022-10-25 12:09:34

5大負載均衡演算法(原理圖解)-mikechen的網際網路架構

負載均衡,是分散式架構的必備技術,也是進階的必學技術,需要重點掌握。

本文,我將重點詳解負載均衡的5大核心演演算法 @mikechen

先來看張圖,下面是一個典型的叢集和負載均衡架構圖
5大負載均衡演算法(原理圖解)-mikechen的網際網路架構

當一臺機器不能承受存取壓力時,我們大多會通過橫向增加兩臺、或者多臺伺服器,來共同承擔存取壓力,來極大的降低後端的存取壓力,提升使用者的存取效能。

但是,從一臺擴充套件到多臺伺服器後,如何將使用者端的流量、分發到具體的伺服器呢?是通過伺服器 1 、還是伺服器 3 ?

這就涉及到了具體的負載均衡演演算法。

目錄

1.  輪循

5大負載均衡演算法(原理圖解)-mikechen的網際網路架構

輪詢很容易實現,將請求按順序輪流分配到後臺伺服器上,均衡的對待每一臺伺服器,而不關心伺服器實際的連線數和當前的系統負載。
適合場景:適合於應用伺服器硬體都相同的情況。

2.  加權輪循

5大負載均衡演算法(原理圖解)-mikechen的網際網路架構
在輪詢的基礎上根據硬體設定不同,按權重分發到不同的伺服器。
適合場景:跟設定高、負載低的機器分配更高的權重,使其能處理更多的請求,而效能低、負載高的機器,設定較低的權重,讓其處理較少的請求。

3.  隨機

5大負載均衡演算法(原理圖解)-mikechen的網際網路架構
通過系統隨機函數,根據後臺伺服器列表的大小值來隨機選取其中一臺進行存取。

隨著呼叫量的增大,使用者端的請求可以被均勻地分派到所有的後端伺服器上,其實際效果越來越接近於平均分配流量到後臺的每一臺伺服器,也就是輪詢法的效果。

4.  最少連線

5大負載均衡演算法(原理圖解)-mikechen的網際網路架構
記錄每個伺服器正在處理的請求數,把新的請求分發到最少連線的伺服器上,因為要維護內部狀態不推薦。

5.  源地址雜湊

5大負載均衡演算法(原理圖解)-mikechen的網際網路架構
根據服務消費者請求使用者端的IP地址,通過雜湊函數計算得到一個雜湊值,將此雜湊值和伺服器列表的大小進行取模運算,得到的結果便是要存取的伺服器地址的序號。

適合場景:根據請求的來源IP進行hash計算,同一IP地址的使用者端,當後端伺服器列表不變時,它每次都會對映到同一臺後端伺服器進行存取。

以上,是對 5 大負載均衡演演算法及其原理的解析,對掌握及使用負載均衡,具有一定的參考價值,建議收藏、經常溫顧。

如果覺得有用,請 點贊 轉發 支援下,謝謝。

 

作者簡介

陳睿 | mikechen , 10年+大廠架構經驗,「mikechen 的網際網路架構」系列文章作者,專注網際網路架構技術。