LVS, Nginx, HAProxy的對(duì)比

軟件負(fù)載均衡一般分為兩種實(shí)現(xiàn):基于操作系統(tǒng)的軟負(fù)載實(shí)現(xiàn)和基于第三方應(yīng)用的軟負(fù)載實(shí)現(xiàn)。

LVS

1. 基于操作系統(tǒng)的軟負(fù)載

2. 抗負(fù)載能力強(qiáng),性能高,號(hào)稱(chēng)能達(dá)到F5的60%,對(duì)內(nèi)存和cpu耗費(fèi)資源低。

3. 工作在4層(tcp),通過(guò)vrrp協(xié)議進(jìn)行轉(zhuǎn)發(fā)(僅做數(shù)據(jù)分發(fā)),具體流量由linux內(nèi)核進(jìn)行處理,因此沒(méi)有流量的產(chǎn)生

4. 穩(wěn)定性和可靠性不錯(cuò),有完美的熱備方案(如lvs+keepalive)

5. 不支持正則表達(dá)式,不支持動(dòng)靜分離(廢話(huà),基于4層的當(dāng)然沒(méi)有)

6. 支付的負(fù)載均衡算法:rr(輪詢(xún)),wrr(加權(quán)輪詢(xún)),lc(最小連接),wlc(權(quán)重最小連接)

7. 配置復(fù)雜,對(duì)網(wǎng)絡(luò)依賴(lài)較高,但穩(wěn)定性很高

8. 不支持http,如域名,目錄結(jié)構(gòu)等進(jìn)行負(fù)載(廢話(huà),基于4層的當(dāng)然沒(méi)有)

Nginx

1. 基于第三方應(yīng)用的軟負(fù)載

2. 工作在7層,主要針對(duì)的是http,https,email協(xié)議,其他不支持

3. 對(duì)網(wǎng)絡(luò)依賴(lài)較小,能ping通就能進(jìn)行負(fù)載

4. 能給承擔(dān)高負(fù)載,號(hào)稱(chēng)能給支持超過(guò)1萬(wàn)次的并發(fā)

5. 對(duì)后端服務(wù)器的健康監(jiān)測(cè)只能通過(guò)端口而不是支持url

6. 可以對(duì)請(qǐng)求進(jìn)行異步處理,減輕服務(wù)器的負(fù)載負(fù)擔(dān)

7. 不支持Session的直接保持,但支持ip-hash

8. 能給作為web服務(wù)器,即cache功能

9. 支持的負(fù)載均衡算法:輪詢(xún),加權(quán)輪詢(xún),ip哈希

Haproxy

1. 基于第三方應(yīng)用的軟負(fù)載

2. 可以工作在4層和7層

3. 支持url來(lái)進(jìn)行后端服務(wù)器的檢測(cè)

4. 支持nginx不支持的session保持和cookie引導(dǎo)等工作

5. 支持的負(fù)載均衡算法:動(dòng)態(tài)加權(quán),加權(quán)源地址哈希,加權(quán)url哈希,加權(quán)參數(shù)哈希,輪詢(xún),加權(quán)輪詢(xún),源地址保持,根據(jù)cookie保持

6. 單純從效率上講HAProxy會(huì)比Nginx更高效

7. 可以對(duì)MySQL進(jìn)行負(fù)載均衡

8. 不能作為web服務(wù)器即cache

三大主流軟件負(fù)載均衡器適用業(yè)務(wù)場(chǎng)景:

1、網(wǎng)站建設(shè)初期,可以選用Nigix/HAproxy作為反向代理負(fù)載均衡(或者流量不大都可以不選用負(fù)載均衡),因?yàn)槠渑渲煤?jiǎn)單,性能也能滿(mǎn)足一般的業(yè)務(wù)場(chǎng)景。如果考慮到負(fù)載均衡器是有單點(diǎn)問(wèn)題,可以采用Nginx+Keepalived/HAproxy+Keepalived避免負(fù)載均衡器自身的單點(diǎn)問(wèn)題。

2、網(wǎng)站并發(fā)達(dá)到一定程度之后,為了提高穩(wěn)定性和轉(zhuǎn)發(fā)效率,可以使用LVS、畢竟LVS比Nginx/HAproxy要更穩(wěn)定,轉(zhuǎn)發(fā)效率也更高。不過(guò)維護(hù)LVS對(duì)維護(hù)人員的要求也會(huì)更高,投入成本也更大。

注:Niginx與Haproxy比較:Niginx支持七層、用戶(hù)量最大,穩(wěn)定性比較可靠。Haproxy支持四層和七層,支持更多的負(fù)載均衡算法,支持session保存等。具體選型看使用場(chǎng)景,目前來(lái)說(shuō)Haproxy由于彌補(bǔ)了一些Niginx的缺點(diǎn)用戶(hù)量也不斷在提升。

衡量負(fù)載均衡器好壞的幾個(gè)重要因素:

1、會(huì)話(huà)率 :?jiǎn)挝粫r(shí)間內(nèi)的處理的請(qǐng)求數(shù)

2、會(huì)話(huà)并發(fā)能力:并發(fā)處理能力

3、數(shù)據(jù)率:處理數(shù)據(jù)能力

經(jīng)過(guò)官方測(cè)試統(tǒng)計(jì),haproxy 單位時(shí)間處理的最大請(qǐng)求數(shù)為20000個(gè),可以同時(shí)維護(hù)40000-50000個(gè)并發(fā)連接,最大數(shù)據(jù)處理能力為10Gbps。綜合上述,haproxy是性能優(yōu)越的負(fù)載均衡、反向代理服務(wù)器。

總結(jié)HAProxy主要優(yōu)點(diǎn):

一、免費(fèi)開(kāi)源,穩(wěn)定性也是非常好,這個(gè)可通過(guò)我做的一些小項(xiàng)目可以看出來(lái),單Haproxy也跑得不錯(cuò),穩(wěn)定性可以與LVS相媲美;

二、根據(jù)官方文檔,HAProxy可以跑滿(mǎn)10Gbps-New benchmark of HAProxy at 10 Gbps using Myricom's 10GbE NICs (Myri-10G PCI-Express),這個(gè)作為軟件級(jí)負(fù)載均衡,也是比較驚人的;

三、HAProxy可以作為MySQL、郵件或其它的非web的負(fù)載均衡,我們常用于它作為MySQL(讀)負(fù)載均衡;

四、自帶強(qiáng)大的監(jiān)控服務(wù)器狀態(tài)的頁(yè)面,實(shí)際環(huán)境中我們結(jié)合Nagios進(jìn)行郵件或短信報(bào)警,這個(gè)也是我非常喜歡它的原因之一;

五、HAProxy支持虛擬主機(jī)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容