負(fù)載均衡的5種算法,你了解幾種?
我們平常使用的F5,LVS,HAproxy,nginx等負(fù)載均衡軟件或設(shè)備,不管是基于硬件負(fù)載,還是基于軟件的負(fù)載,其負(fù)載均衡的算法都是一樣的。主要有以下幾種:
一、輪詢( Round Robin,RR )
所有請求被依次分發(fā)到每臺應(yīng)用服務(wù)器上,即每臺服務(wù)器需要處理的請求數(shù)目都相同,適合于所有服務(wù)器硬件都相同的場景。
二、加權(quán)輪詢( Weighted Round Robin, WRR)
根據(jù)應(yīng)用服務(wù)器硬件性能的情況,在輪詢的基礎(chǔ)上,按照配置的權(quán)重將請求分發(fā)到每個服務(wù)器,高性能的服務(wù)器能分配更多請求。

三、隨機( Random )
請求被隨機分配到各個應(yīng)用服務(wù)器,在許多場合下,這種方案都很簡單實用,因為好的隨機數(shù)本身就很均衡。即使應(yīng)用服務(wù)器硬件配置不同,也可以使用加權(quán)隨機算法。
四、最少連接(Least Connections)
記錄每個應(yīng)用服務(wù)器正在處理的連接數(shù)(請求數(shù)),將新到的請求分發(fā)到最少連接的服務(wù)器上,應(yīng)該說,這是很符合負(fù)載均衡定義的算法。同樣,最少連接算法也可以實現(xiàn)加權(quán)最少連接。
五、源地址散列( Source Hashing )
根據(jù)請求來源的IP地址進(jìn)行Hash計算,得到應(yīng)用服務(wù)器,這樣來自同一個IP地址的請求總在同一個服務(wù)器上處理,該請求的上下文信息可以存儲在這臺服務(wù)器上,在一個會話周期內(nèi)重復(fù)使用,從而實現(xiàn)會話黏滯。