回覆列表
  • 1 # 會點程式碼的大叔

    常見的負載均衡排程演算法,向大家介紹介紹。

    01. 輪詢法

    輪詢法就是按照順序把請求輪流分配到每臺伺服器上;

    輪訓法簡單高效,易於水平擴充套件,不過因為只求平均,不關心每臺服務實際的負載;所以如果某一臺伺服器效能不好,極有可能產生木桶效應。

    02. 隨機法

    隨機分配請求到每臺伺服器上,如果請求數量足夠多,從機率學角度看,實際效果會接近平均分配。

    03. 隨機輪詢法

    隨機法和輪詢法相結合,隨機找到一個伺服器作為起點,然後開始輪詢傳送請求。(隨機只體現在尋找第一個伺服器的時候,剩餘的工作和輪訓法一樣)

    04. 源地址雜湊法

    對客戶端的 IP 地址進行雜湊運算得到一個值 X,伺服器數量為 N,透過 X % N 的結果,決定訪問哪臺伺服器。

    地址雜湊法可以讓相同的 IP 每次都落在同一臺伺服器上,這樣不需要考慮 Session 共享的問題,但是可能會導致流量的分佈不均勻,並且當某一臺伺服器出現故障,會導致這個伺服器上的客戶端無法使用,無法保證叢集的高可用。

    05. 加權輪詢法

    加權輪詢法是對輪詢法的一個改進,因為每臺伺服器的配置不一樣,所以它們的抗壓能力也不一樣,配置高的機器可以分配更高的權重,這樣就可以處理更多的請求;

    加權輪詢法將機器的效能也納入考量範圍,叢集效能可以發揮到最大。

    06. 加權隨機法

    和加權輪詢法類似;這裡就不再贅述了。

    最小連線數法根據實時狀態變化進行調整,最大限度地利用每一臺機器的資源,提高叢集整體的可用性;不過複雜度也高,需要計算每臺伺服器的連線數量。

    和最小連線數法類似,最快響應速度法也是動態調整的,控制粒度更細,能者多勞;同時複雜度也高,需要計算每臺伺服器的響應速度。

    常見的負載均衡演算法就是這些,比如使用 Nginx 做負載均衡的話,軟體預設使用的是輪訓法。

  • 2 # kid7157887

    輪詢

    加權輪詢

    hash粘滯,根據url,請求引數等條件進行hash

    根據資源使用情況排程

    隨機

    加權隨機

  • 3 # JAVA前線

    1 輪詢法

    Round Robin:負載均衡器將請求依次並按順序分發給後端伺服器

    2 隨機法

    Random:負載均衡器將請求隨機分發到後端伺服器,隨著請求量資料的增大,其效果近似於將請求平均分發到後端伺服器

    3 加權輪詢法

    Weight Round Robin:輪詢法同第1點,加權是指根據後端伺服器的能力和負載情況,給後端伺服器一個權重值,伺服器權重值越大,請求分發到該伺服器機率就越大

    4 加權隨機法

    Weight Random:隨機法同第2點,加權法同第3點

    5 源地址雜湊法

    Hash:負載均衡器對客戶端IP地址做雜湊,用雜湊值和伺服器數量取模,取模得到的值就是分發的伺服器序號

    6 最小連結數法

    Least Connections:負載均衡器根據後端伺服器當前處理請求的數量,動態選擇一個當前處理請求最少的伺服器

  • 4 # Next科技

    負載均衡排程演算法也叫負載均衡方法有很多種,下面以使用比較廣的nginx為例說說軟體負載均衡的排程演算法:

    輪詢

    nginx預設的排程演算法,按照時間順序逐一分配後臺伺服器

    加權輪詢

    在server後加weigth,weight值越高,後臺伺服器分配機率越大,下圖是說ip為102的後臺服務分配機率是ip為101後臺服務的兩倍

    ip_hash

    按照訪問ip的hash分配,增加ip_hash關鍵字,同一ip訪問相同的後臺服務

    url_hash

    按照訪問url的hash分配,增加url_hash關鍵字,同一url訪問相同的後臺服務

    least_hash

    按照最少連線數方式分配,增加least_conn關鍵字,哪個後臺服務連線數少就分配哪個

    fair

    按照最短響應時間分配,增加fair關鍵字,響應時間短的後臺服務優先分配

  • 中秋節和大豐收的關聯?
  • 總是想起以前尷尬的事情並且無法釋懷,怎麼辦?