高性能集群之所以復雜,主要原因是增加了任務分配器,以及為任務選擇合適的分配算法。負載均衡器就是任務分配器,負載均衡這個名稱已經成為事實標準,但負載均衡不只是為了計算單元的負載達到均衡狀態。
分類及架構
常見的負載均衡分三種:DNS負載、硬件負載、軟件負載
1、DNS負載均衡
定義:解析同一個域名返回不同的IP地址,一般用來實現地理級別的均衡。例如同樣的域名,北方用戶和南方用戶獲取的地址是不一樣的。
優點:
簡單、成本低
實現就近訪問,提升訪問速度
缺點:
更新不及時(DNS緩存時間長)
擴展性差(無法根據業務定制和擴展)
分配策略簡單(算法少、無法感知后端服務器狀態)
2、硬件負載均衡
定義:通過單獨的硬件設備實現負載均衡功能,可以理解為一個用于負載均衡的基礎網絡設備。目前業界典型的硬件負載均衡設備有兩款:F5 和 A10。
優點:
功能強大(支持各層級負載、支持全面的負載算法、支持全局負載)
性能強大(支持100萬以上并發)
穩定性高(商用硬件負載)
支持安全防護(具備防火墻、防DDoS攻擊等功能)
缺點:
價格昂貴(起步15萬,最高上百萬)
擴展能力差(硬件設備無法進行擴展和定制)
3、軟件負載均衡
定義:通過負載均衡軟件來實現負載均衡功能,常見的有 Nginx 和 LVS兩種。
優點:
簡單(部署維護都比較簡單)
便宜(只需Linux服務器裝上軟件)
靈活(可根據業務方便擴展和定制)
缺點(與硬件負載相比):
性能一般(一個Nginx大約支撐5萬并發)
功能沒有硬件負載強大
一般不具備防火墻和防DDoS等安全功能
4、典型架構
3種負載機制在實際應用中不是非此即彼,可以組合使用。
組合的基本原則為:DNS 負載均衡用于實現地理級別的負載均衡;硬件負載均衡用于實現集群級別的負載均衡;軟件負載均衡用于實現機器級別的負載均衡。

算法
根據算法期望達到的目的,可以分為4類:
任務平分類:平均分配,平均可以是數量平均、也可以是比例平均、權重平均
負載均衡類:根據服務器負載進行分配,這里的負載指系統當前壓力,如CPU負載、連接數、I/O使用率等
性能最優類:根據服務器響應時間進行分配,響應最快的分配更多新任務
Hash類:根據任務某些關鍵信息進行Hash運算,結果值相同的分配同一臺服務器
1、輪詢
定義:按照順序輪流分配到服務器,不關注服務器本身運行狀態如何。
特點:只關注服務器是否在運行,只要運行就分配任務,不管運行是否良好。『簡單』是優點,也是缺點。
2、加權輪詢
定義:輪詢的特殊形式,根據服務器權重進行任務分配,權重指根據硬件配置進行靜態配置的,主要目的是為了解決不同服務器處理能力有差異的問題。
特點:解決了輪詢算法中無法根據服務器的配置差異進行任務分配的問題,但依然無法根據服務器的狀態差異進行任務分配。
3、負載最低優先
定義:將任務分配給當前負載最低的服務器,這里的當前負載根據不同任務類型和業務,可以用不同指標衡量。如連接數、HTTP請求數、CPU負載、I/O負載等。
特點:解決了輪詢算法中無法感知服務器狀態的問題,代價是增加很多復雜度,因為需要感知服務器當前的運行狀態。效果美好但實際應用場景沒有輪詢多。
4、性能最優類
定義:站在客戶端的角度進行分配,優先將任務分配給處理速度最快的服務器。
特點:與負載最低優先類的算法類似,需要感知服務器狀態并且在合適周期內進行統計分析,復雜度很高。
5、Hash類
定義:根據任務中的某些關鍵信息進行 Hash 運算,將值相同的請求分配到同一臺服務器,目的主要是為了滿足特定業務需求。常見的有源地址Hash和ID Hash。
特點:將同一個源地址或帶有某個ID標識的任務分配給同一個服務器,適合于存在事務、會話的業務
審核編輯:湯梓紅
-
負載
+關注
關注
2文章
665瀏覽量
36510 -
cpu
+關注
關注
68文章
11277瀏覽量
224951 -
服務器
+關注
關注
14文章
10251瀏覽量
91480 -
分配器
+關注
關注
0文章
213瀏覽量
27284 -
DNS
+關注
關注
0文章
229瀏覽量
21147
原文標題:高性能負載均衡-分類和算法
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
LSBPSO算法在磁盤負載均衡問題中的應用
Web集群系統的負載均衡算法
基于并行遺傳算法的VOD系統負載均衡研究
高性能負載均衡的分類和算法
評論