分佈式概念:負載均衡

負載均衡可以分爲兩種:
一種是請求負載均衡,即將用戶的請求均衡地分發到不同的服務器進行處理;
另一種是數據負載均衡,即將用戶更新的數據分發到不同的存儲服務器(數據分片技術

網絡層的角度,通常有基於 DNS、IP 報文等的負載均衡方法;
分佈式系統層,主要包括輪詢策略、隨機策略、哈希和一致性哈希等;

順序輪詢
按服務器序號依次選擇處理。

加權輪詢
加權輪詢爲每個服務器設置了優先級,每次請求過來時會挑選優先級最高的服務器進行處理。
優點:實現簡單,且對於請求所需開銷差不多時,負載均衡效果比較明顯。
缺點:每次請求到達的目的節點不確定,不適用於有狀態請求的場景,不適用於處理請求所需開銷不同的場景。

Nginx 默認的負載均衡策略就是一種改進的加權輪詢策略。

隨機策略
當用戶請求到來時,會隨機發到某個服務節點進行處理,可以採用隨機函數實現。

哈希和一致性哈希策略
(如對kvu取md5求hashcode選channel,一個channel對應一個node節點)
哈希函數設置合理的話,負載會比較均衡。而且,相同 key 的請求會落在同一個服務節點上,可以用於有狀態請求的場景。
除此之外,帶虛擬節點的一致性哈希策略還可以解決服務器節點異構的問題。
缺點:當某個節點出現故障時,採用哈希策略會出現數據大規模遷移的情況,採用一致性哈希策略可能會造成一定的數據傾斜問題。
應用:redis

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章