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

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