六種常見負載均衡算法
今天我們來聊聊常見的負載均衡算法。

負載均衡將網(wǎng)絡流量或一組任務以某種算法合理分配給各個處理節(jié)點,使得節(jié)點得到平等的使用,并及時可靠地返回結果給用戶。
負載均衡廣泛應用于各種硬件軟件系統(tǒng)中,比如:
- 根據(jù) IP 地址進行網(wǎng)絡流量負載均衡。在服務進行維護時,可以方便將網(wǎng)絡流量切換到臨時節(jié)點或降級的服務上。
 - 根據(jù) HTTP 頭信息或請求字段進行應用程序負載均衡,用戶得到響應的時間更短,并且可以提供分層服務,也方便服務擴容時加入新的節(jié)點。
 - CDN 根據(jù)流量的來源,將流量導入相鄰地區(qū)的服務器,以獲得更短的響應時間和更高的可用性。
 
下圖顯示了 6 種常見算法。

一、態(tài)算法
1.循環(huán)(Round Robin)
客戶端請求按順序發(fā)送到不同的服務實例。通常要求服務是無狀態(tài)的。這種算法最簡單,但是也無法處理某個節(jié)點變慢或者客戶端操作有連續(xù)性的情況。
2.粘性循環(huán)(Sticky Round Robin)
這是對循環(huán)算法的一種改進。如果 Alice 的第一個請求發(fā)送到服務 A,那么接下來的請求也會發(fā)送到服務 A。這種負載均衡可以確保一個用戶的請求都發(fā)往同一個服務節(jié)點,適合客戶端操作有連續(xù)性的情況。有時候該服務節(jié)點上會保存該用戶的一些狀態(tài),避免去后端數(shù)據(jù)庫查詢。
3.加權循環(huán)(Weighted Round Robin)
管理員可以指定每個服務的權重。權重高的服務會比其他服務處理更多請求。
4.散列(IP/URL Hash)
該算法對傳入請求的 IP 或 URL 應用哈希函數(shù)。根據(jù)哈希函數(shù)的結果將請求路由到相關服務。
二、動態(tài)算法
5.最少連接(Least Connections)
新請求會發(fā)送到并發(fā)連接最少的服務節(jié)點。
6.響應時間最少(Least Time)
新請求會發(fā)送到響應時間最快的服務節(jié)點。這樣,某個服務節(jié)點變慢就不會阻塞后續(xù)請求處理了。















 
 
 











 
 
 
 