常見的負載均衡算法算法
輪循(Round Robin)
加權輪循(Weighted Round Robin)、
最少鏈接數(Least Connection)
最少鏈接數慢啓動時間(Least Connection Slow Start Time)、
加權最少鏈接(Weighted Least Connection)
基於代理的自適應負載均衡(Agent Based Adaptive Balancing)、
固定權重(Fixed Weighted)
加權響應(Weighted Response)
源IP哈希(Source IP Hash)後端
負載均衡,英文名稱爲Load Balance,其意思就是分攤到多個操做單元上進行執行,
例如Web 服務器、 FTP服務器、 企業關鍵應用服務器和其它關鍵任務服務器等,從而共同完成工做任務。緩存
輪詢
輪詢調度算法的原理是每一次把來自用戶的請求輪流分配給內部中的服務器,從1開始,直到N(內部服務器個數),而後從新開始循環。
算法的優勢是其簡潔性,它無需記錄當前全部鏈接的狀態,因此它是一種無狀態調度。服務器
隨機(Random)法
經過系統的隨機算法,根據後端服務器的列表大小值來隨機選取其中的一臺服務器進行訪問。
由機率統計理論能夠得知,隨着客戶端調用服務端的次數增多,
其實際效果愈來愈接近於平均分配調用量到後端的每一臺服務器,也就是輪詢的結果。
基於機率統計的理論,吞吐量越大,隨機算法的效果越接近於輪詢算法的效果。session
源地址哈希(Hash)法
源地址哈希的思想是根據獲取客戶端的IP地址,經過哈希函數計算獲得的一個數值,用該數值對服務器列表的大小進行取模運算,獲得的結果即是客戶端要訪問服務器的序號。
採用源地址哈希法進行負載均衡,同一IP地址的客戶端,當後端服務器列表不變時,它每次都會映射到同一臺後端服務器進行訪問。
源地址哈希法的優勢在於:保證了相同客戶端IP地址將會被哈希到同一臺後端服務器,直到後端服務器列表變動。
根據此特性能夠在服務消費者與服務提供者之間創建有狀態的session會話。
源地址哈希算法的缺點在於:除非集羣中服務器的很是穩定,基本不會上下線,不然一旦有服務器上線、下線,
那麼經過源地址哈希算法路由到的服務器是服務器上線、下線前路由到的服務器的機率很是低,若是是session則取不到session,若是是緩存則可能引起」雪崩」。負載均衡
加權輪詢(Weight Round Robin)法
不一樣的後端服務器可能機器的配置和當前系統的負載並不相同,所以它們的抗壓能力也不相同。
給配置高、負載低的機器配置更高的權重,讓其處理更多的請;而配置低、負載高的機器,給其分配較低的權重,下降其系統負載,
加權輪詢能很好地處理這一問題,並將請求順序且按照權重分配到後端。
與輪詢法相似,只是在獲取服務器地址以前增長了一段權重計算的代碼,根據權重的大小,將地址重複地增長到服務器地址列表中,
權重越大,該服務器每輪所得到的請求數量越多。dom
加權隨機(Weight Random)法
與加權輪詢法同樣,加權隨機法也根據後端機器的配置,系統的負載分配不一樣的權重。不一樣的是,它是按照權重隨機請求後端服務器,而非順序。函數
最小鏈接數(Least Connections)法
最小鏈接數算法比較靈活和智能,因爲後端服務器的配置不盡相同,對於請求的處理有快有慢,它是根據後端服務器當前的鏈接狀況,
動態地選取其中當前積壓鏈接數最少的一臺服務器來處理當前的請求,儘量地提升後端服務的利用效率,將負責合理地分流到每一臺服務器。
參考:http://mp.weixin.qq.com/s?__biz=MzAxNDMwMTMwMw==&mid=2247486378&idx=5&sn=dae35a12b684f7b9ccd922d8e12cd098代理