1. 程式人生 > >常見的負載均衡策略

常見的負載均衡策略

分配 要求 無法 ping 通過 設置 發生 生命 同時

常見的負載均衡策略


輪詢(Round Robin)
輪詢的實現方式比較簡單,就是將請求以此分發到後端服務器中,將所有的請求均勻分配,均勻分配的壞處是通常後臺服務器性能有差異,有時候希望性能較好的服務器可以多承擔些請求,該策略無法滿足需求。這個不適合對長連接和命中率有要求的場景。

加強輪詢(Weighted Round Robin)

這種策略是對輪詢策略的優化,對每個後端服務器設置一個權重值,根據權重值決定請求的分配比例,這種做法解決了輪詢策略的不足,但是該權限值需要手動配置,沒有辦法自動動態調節,同樣不適合對長連接和命中率有要求的場景。

hash算法

通過ip url等信息計算hash值,然後對服務器的數量取模,相同的請求會請求到同一個後端服務器中。該算法無法解決熱點請求,會把某個時間段的熱點請求路由到某個單機上,造成雪崩效應,同時在擴中和節點宕機時發生命中率急劇降低的問題(hash算法導致),該策略適合維護長連接和提高命中率。

隨機Random

根據隨機算法,將請求隨機分配到後端服務器中,請求的均勻請求依賴於隨機算法,該實現方式較為簡單,常常可以配合處理一些極端的請求,例如熱點請求情況。不適合對命中率有要求的場景。

一致性hash算法

對hash 算法的優化,可以有效的解決宕機和擴充造成的命中率急劇降低的問題。

最小連接數 Least Connection

通過活動來估計後端服務器的負載,把請求分配給活動連接數最小的後端服務器,算法比較智能,但是需要額外的資源維護後端服務器的連接列表。

加權最小連接數 Weighted Least Connection

對Least Connection策略的優化,通過加權的方式優化Least Connection的性能,對性能較好的後端服務器設置較高的權重,承擔更多的鏈接負載。

最短響應時間 Least Response Time

該策略的意思就是將請求分配給平均響應時間最短的後端服務器,平均時間可以通過ping或者正常的響應時間來獲取 。


後面會逐一對各個常見的負載均衡策略的實現做介紹。

常見的負載均衡策略