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

mikechen的網際網路架構發表於2022-10-24

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


大家好,我是   mikechen   ,專注分享 「  網際網路   大廠架構技術」

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

本文重點詳解負載均衡的5大核心演算法。

首先,我們來看張圖,下面是一張典型的 叢集和負載均衡架構圖

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

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

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

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


目錄

1.  輪循

2.  加權輪循

3.  隨機

4.  最少連線

5.  源地址雜湊


1.   輪循

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

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


2.  加權輪循

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


3.  隨機

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

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


4.  最少連線

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


5.  源地址雜湊

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


根據服務消費者請求客戶端的IP地址,透過雜湊函式計算得到一個雜湊值,將此雜湊值和伺服器列表的大小進行取模運算,得到的結果就是要訪問的伺服器地址的序號。

適合場景:

根據請求的來源IP進行hash計算,同一IP地址的客戶端,當後端伺服器列表不變時,它每次都會對映到同一臺後端伺服器進行訪問。

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

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


作者簡介

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

獲取「mikechen 的網際網路架構」40W 字 技術文章合集

關注「mikechen 的網際網路架構」公眾號,回覆 架構即得。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70011997/viewspace-2920096/,如需轉載,請註明出處,否則將追究法律責任。

相關文章