首頁 > 運維 > Nginx > 主體

負載平衡常用演算法介紹

王林
發布: 2020-06-16 16:40:13
轉載
3897 人瀏覽過

負載平衡常用演算法介紹

負載平衡常用演算法:

1、輪詢(round-robin)

輪詢為負載平衡中較為基礎也較為簡單的演算法,它不需要配置額外參數。假設設定檔中共有 M 台伺服器,演算法遍歷伺服器節點列表,並按節點順序每輪選擇一台伺服器處理請求。當所有節點都被呼叫過一次後,演算法將從第一個節點開始重新一輪遍歷。

特點:

由於演算法中每個請求按時間順序逐一分配到不同的伺服器處理,因此適用於伺服器效能相近的叢集情況,其中每個伺服器承載相同的負載。但對於伺服器效能不同的叢集而言,此演算法容易引發資源分配不合理等問題。

2、加權輪詢

為了避免普通輪詢帶來的弊端,加權輪詢應運而生。在加權輪詢中,每個伺服器會有各自的 weight。一般情況下,weight 的值越大代表該伺服器的效能越好,可以承載更多的請求。在演算法中,客戶端的請求按權值比例分配,當一個請求到達時,優先為其分配權值最大的伺服器。

特點:

加權輪詢可以套用於伺服器效能不等的叢集中,使資源分配更加合理化。

其核心思想是,遍歷各伺服器節點,併計算節點權值,計算規則為 current_weight 與其對應的 effective_weight 之和,每輪遍歷中選出權值最大的節點作為最優伺服器節點。其中 effective_weight 會在演算法的執行過程中隨資源狀況和回應情況而改變。

3、IP 雜湊(IP hash)

ip_hash 依據發出請求的客戶端IP 的hash 值來分配伺服器,該演算法可以保證同IP 發出的請求對應到同一伺服器,或具有相同hash 值的不同IP 會對應到同一伺服器。

特點:

此演算法在一定程度上解決了叢集部署環境下 Session 不共享的問題。

推薦教學:nginx教學

#

以上是負載平衡常用演算法介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:juejin.im
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!