負載均衡的幾種實現方式

一、負載均衡的基本概念

負載均衡是指,將請求分發到 多台 應用伺服器,以此來分散 壓力的一種架構方式,他是以集群的方式存在,並且當 某個節點掛掉的時候,可以自動 不再將請求分配到此節點。

二、 實現方式

1. 重定向

這種方式,是通過將請求全部發送到前置機,由前置機通過演算法 得出要分配給那台 應用伺服器,然後響應給客戶端,由客戶端重定向到應用伺服器的一種方式。

這種方式,由於每一個的請求,都要重定向一下,所以效率不是很高

2. 反向代理

這種方式,是通過在前置機,使用反向代理的方式,將請求分發到應用伺服器,客戶端無需再請求一次,實現方式通常有兩種,一種是用交換機實現,還有一種是用nginx這一類的軟體實現

這種方式,由於不需要再次重定向,所以較第一種,效率較高,但是由於請求和響應都是通過前置機來的,所以對前置機的考驗很大

3. 數據鏈路返回

這種方式,通過給應用伺服器設置虛擬IP,然後通過修改mac地址的方式,將請求分發出去,而應用伺服器 收到請求後,可以直接響應給客戶端,而不需要經過前置機。

這種方式,由於 前置機 只需要接受請求,不需要響應數據,所以,效率較第二種較高。

三、 負載均衡演算法

1. 輪詢法

將請求按順序輪流地分配到後端伺服器上,它均衡地對待後端的每一台伺服器,而不關心伺服器實際的連接數和當前的系統負載。

2. 隨機法

通過系統的隨機演算法,根據後端伺服器的列表大小值來隨機選取其中的一台伺服器進行訪問。由概率統計理論可以得知,隨著客戶端調用服務端的次數增多,

其實際效果越來越接近於平均分配調用量到後端的每一台伺服器,也就是輪詢的結果。

3. 源地址哈希法

源地址哈希的思想是根據獲取客戶端的IP地址,通過哈希函數計算得到的一個數值,用該數值對伺服器列表的大小進行取模運算,得到的結果便是客服端要訪問伺服器的序號。採用源地址哈希法進行負載均衡,同一IP地址的客戶端,當後端伺服器列表不變時,它每次都會映射到同一台後端伺服器進行訪問。

4. 加權輪詢法

不同的後端伺服器可能機器的配置和當前系統的負載並不相同,因此它們的抗壓能力也不相同。給配置高、負載低的機器配置更高的權重,讓其處理更多的請;而配置低、負載高的機器,給其分配較低的權重,降低其系統負載,加權輪詢能很好地處理這一問題,並將請求順序且按照權重分配到後端。

5. 加權隨機法

與加權輪詢法一樣,加權隨機法也根據後端機器的配置,系統的負載分配不同的權重。不同的是,它是按照權重隨機請求後端伺服器,而非順序。

6. 最小連接數法

最小連接數演算法比較靈活和智能,由於後端伺服器的配置不盡相同,對於請求的處理有快有慢,它是根據後端伺服器當前的連接情況,動態地選取其中當前 積壓連接數最少的一台伺服器來處理當前的請求,儘可能地提高後端服務的利用效率,將負責合理地分流到每一台伺服器。


推薦閱讀:

nginx負載均衡之旅
負載均衡--一致性hash演算法

TAG:負載均衡 | 分散式系統 | 互聯網 |