高性能集群之所以復(fù)雜,主要原因是增加了任務(wù)分配器,以及為任務(wù)選擇合適的分配算法。負(fù)載均衡器就是任務(wù)分配器,負(fù)載均衡這個(gè)名稱已經(jīng)成為事實(shí)標(biāo)準(zhǔn),但負(fù)載均衡不只是為了計(jì)算單元的負(fù)載達(dá)到均衡狀態(tài)。
分類及架構(gòu)
常見的負(fù)載均衡分三種:DNS負(fù)載、硬件負(fù)載、軟件負(fù)載
1、DNS負(fù)載均衡
定義:解析同一個(gè)域名返回不同的IP地址,一般用來實(shí)現(xiàn)地理級(jí)別的均衡。例如同樣的域名,北方用戶和南方用戶獲取的地址是不一樣的。
優(yōu)點(diǎn):
簡(jiǎn)單、成本低
實(shí)現(xiàn)就近訪問,提升訪問速度
缺點(diǎn):
更新不及時(shí)(DNS緩存時(shí)間長(zhǎng))
擴(kuò)展性差(無法根據(jù)業(yè)務(wù)定制和擴(kuò)展)
分配策略簡(jiǎn)單(算法少、無法感知后端服務(wù)器狀態(tài))
2、硬件負(fù)載均衡
定義:通過單獨(dú)的硬件設(shè)備實(shí)現(xiàn)負(fù)載均衡功能,可以理解為一個(gè)用于負(fù)載均衡的基礎(chǔ)網(wǎng)絡(luò)設(shè)備。目前業(yè)界典型的硬件負(fù)載均衡設(shè)備有兩款:F5 和 A10。
優(yōu)點(diǎn):
功能強(qiáng)大(支持各層級(jí)負(fù)載、支持全面的負(fù)載算法、支持全局負(fù)載)
性能強(qiáng)大(支持100萬以上并發(fā))
穩(wěn)定性高(商用硬件負(fù)載)
支持安全防護(hù)(具備防火墻、防DDoS攻擊等功能)
缺點(diǎn):
價(jià)格昂貴(起步15萬,最高上百萬)
擴(kuò)展能力差(硬件設(shè)備無法進(jìn)行擴(kuò)展和定制)
3、軟件負(fù)載均衡
定義:通過負(fù)載均衡軟件來實(shí)現(xiàn)負(fù)載均衡功能,常見的有 Nginx 和 LVS兩種。
優(yōu)點(diǎn):
簡(jiǎn)單(部署維護(hù)都比較簡(jiǎn)單)
便宜(只需Linux服務(wù)器裝上軟件)
靈活(可根據(jù)業(yè)務(wù)方便擴(kuò)展和定制)
缺點(diǎn)(與硬件負(fù)載相比):
性能一般(一個(gè)Nginx大約支撐5萬并發(fā))
功能沒有硬件負(fù)載強(qiáng)大
一般不具備防火墻和防DDoS等安全功能
4、典型架構(gòu)
3種負(fù)載機(jī)制在實(shí)際應(yīng)用中不是非此即彼,可以組合使用。
組合的基本原則為:DNS 負(fù)載均衡用于實(shí)現(xiàn)地理級(jí)別的負(fù)載均衡;硬件負(fù)載均衡用于實(shí)現(xiàn)集群級(jí)別的負(fù)載均衡;軟件負(fù)載均衡用于實(shí)現(xiàn)機(jī)器級(jí)別的負(fù)載均衡。
算法
根據(jù)算法期望達(dá)到的目的,可以分為4類:
任務(wù)平分類:平均分配,平均可以是數(shù)量平均、也可以是比例平均、權(quán)重平均
負(fù)載均衡類:根據(jù)服務(wù)器負(fù)載進(jìn)行分配,這里的負(fù)載指系統(tǒng)當(dāng)前壓力,如CPU負(fù)載、連接數(shù)、I/O使用率等
性能最優(yōu)類:根據(jù)服務(wù)器響應(yīng)時(shí)間進(jìn)行分配,響應(yīng)最快的分配更多新任務(wù)
Hash類:根據(jù)任務(wù)某些關(guān)鍵信息進(jìn)行Hash運(yùn)算,結(jié)果值相同的分配同一臺(tái)服務(wù)器
1、輪詢
定義:按照順序輪流分配到服務(wù)器,不關(guān)注服務(wù)器本身運(yùn)行狀態(tài)如何。
特點(diǎn):只關(guān)注服務(wù)器是否在運(yùn)行,只要運(yùn)行就分配任務(wù),不管運(yùn)行是否良好。『簡(jiǎn)單』是優(yōu)點(diǎn),也是缺點(diǎn)。
2、加權(quán)輪詢
定義:輪詢的特殊形式,根據(jù)服務(wù)器權(quán)重進(jìn)行任務(wù)分配,權(quán)重指根據(jù)硬件配置進(jìn)行靜態(tài)配置的,主要目的是為了解決不同服務(wù)器處理能力有差異的問題。
特點(diǎn):解決了輪詢算法中無法根據(jù)服務(wù)器的配置差異進(jìn)行任務(wù)分配的問題,但依然無法根據(jù)服務(wù)器的狀態(tài)差異進(jìn)行任務(wù)分配。
3、負(fù)載最低優(yōu)先
定義:將任務(wù)分配給當(dāng)前負(fù)載最低的服務(wù)器,這里的當(dāng)前負(fù)載根據(jù)不同任務(wù)類型和業(yè)務(wù),可以用不同指標(biāo)衡量。如連接數(shù)、HTTP請(qǐng)求數(shù)、CPU負(fù)載、I/O負(fù)載等。
特點(diǎn):解決了輪詢算法中無法感知服務(wù)器狀態(tài)的問題,代價(jià)是增加很多復(fù)雜度,因?yàn)樾枰兄?wù)器當(dāng)前的運(yùn)行狀態(tài)。效果美好但實(shí)際應(yīng)用場(chǎng)景沒有輪詢多。
4、性能最優(yōu)類
定義:站在客戶端的角度進(jìn)行分配,優(yōu)先將任務(wù)分配給處理速度最快的服務(wù)器。
特點(diǎn):與負(fù)載最低優(yōu)先類的算法類似,需要感知服務(wù)器狀態(tài)并且在合適周期內(nèi)進(jìn)行統(tǒng)計(jì)分析,復(fù)雜度很高。
5、Hash類
定義:根據(jù)任務(wù)中的某些關(guān)鍵信息進(jìn)行 Hash 運(yùn)算,將值相同的請(qǐng)求分配到同一臺(tái)服務(wù)器,目的主要是為了滿足特定業(yè)務(wù)需求。常見的有源地址Hash和ID Hash。
特點(diǎn):將同一個(gè)源地址或帶有某個(gè)ID標(biāo)識(shí)的任務(wù)分配給同一個(gè)服務(wù)器,適合于存在事務(wù)、會(huì)話的業(yè)務(wù)
審核編輯:湯梓紅
-
負(fù)載
+關(guān)注
關(guān)注
2文章
604瀏覽量
34999 -
cpu
+關(guān)注
關(guān)注
68文章
11033瀏覽量
215970 -
服務(wù)器
+關(guān)注
關(guān)注
13文章
9683瀏覽量
87271 -
分配器
+關(guān)注
關(guān)注
0文章
203瀏覽量
26140 -
DNS
+關(guān)注
關(guān)注
0文章
225瀏覽量
20266
原文標(biāo)題:高性能負(fù)載均衡-分類和算法
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
路由器負(fù)載均衡怎么配置
LSBPSO算法在磁盤負(fù)載均衡問題中的應(yīng)用
基于IXP425的負(fù)載均衡系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
Web集群系統(tǒng)的負(fù)載均衡算法

基于并行遺傳算法的VOD系統(tǒng)負(fù)載均衡研究

一種改進(jìn)的動(dòng)態(tài)反饋負(fù)載均衡算法
云環(huán)境中基于LVS集群的負(fù)載均衡算法

評(píng)論