目前,在線上環(huán)境中應(yīng)用較多的負(fù)載均衡器硬件有F5 BIG-IP,軟件有LVS箩绍,Nginx及HAProxy,高可用軟件有Heartbeat括丁、Keepalived,成熟的架構(gòu)有LVS+Keepalived伶选、Nginx+Keepalived史飞、HAProxy+keepalived及DRBD+Heartbeat.
三種負(fù)載均衡器的優(yōu)缺點(diǎn)說(shuō)明如下:
LVS的優(yōu)點(diǎn):
- 1、抗負(fù)載能力強(qiáng)仰税、工作在第4層僅作分發(fā)之用构资,沒有流量的產(chǎn)生,這個(gè)特點(diǎn)也決定了它在負(fù)載均衡軟件里的性能最強(qiáng)的陨簇;無(wú)流量吐绵,同時(shí)保證了均衡器IO的性能不會(huì)受到大流量的影響;
- 2河绽、工作穩(wěn)定己单,自身有完整的雙機(jī)熱備方案,如LVS+Keepalived和LVS+Heartbeat耙饰;
- 3纹笼、應(yīng)用范圍比較廣,可以對(duì)所有應(yīng)用做負(fù)載均衡苟跪;
- 4蔓涧、配置性比較低,這是一個(gè)缺點(diǎn)也是一個(gè)優(yōu)點(diǎn)笋额,因?yàn)闆]有可太多配置的東西元暴,所以并不需要太多接觸,大大減少了人為出錯(cuò)的幾率兄猩;
LVS的缺點(diǎn):
- 1茉盏、軟件本身不支持正則處理,不能做動(dòng)靜分離枢冤,這就凸顯了Nginx/HAProxy+Keepalived的優(yōu)勢(shì)援岩。
- 2、如果網(wǎng)站應(yīng)用比較龐大掏导,LVS/DR+Keepalived就比較復(fù)雜了,特別是后面有Windows Server應(yīng)用的機(jī)器羽峰,實(shí)施及配置還有維護(hù)過(guò)程就比較麻煩趟咆,相對(duì)而言,Nginx/HAProxy+Keepalived就簡(jiǎn)單多了梅屉。
Nginx的優(yōu)點(diǎn):
- 1值纱、工作在OSI第7層,可以針對(duì)http應(yīng)用做一些分流的策略坯汤。比如針對(duì)域名虐唠、目錄結(jié)構(gòu)。它的正則比HAProxy更為強(qiáng)大和靈活惰聂;
- 2疆偿、Nginx對(duì)網(wǎng)絡(luò)的依賴非常小,理論上能ping通就就能進(jìn)行負(fù)載功能搓幌,這個(gè)也是它的優(yōu)勢(shì)所在杆故;
- 3、Nginx安裝和配置比較簡(jiǎn)單溉愁,測(cè)試起來(lái)比較方便处铛;
- 4拐揭、可以承擔(dān)高的負(fù)載壓力且穩(wěn)定,一般能支撐超過(guò)幾萬(wàn)次的并發(fā)量家肯;
- 5、Nginx可以通過(guò)端口檢測(cè)到服務(wù)器內(nèi)部的故障盟猖,比如根據(jù)服務(wù)器處理網(wǎng)頁(yè)返回的狀態(tài)碼息楔、超時(shí)等等寝贡,并且會(huì)把返回錯(cuò)誤的請(qǐng)求重新提交到另一個(gè)節(jié)點(diǎn);
- 6值依、Nginx不僅僅是一款優(yōu)秀的負(fù)載均衡器/反向代理軟件圃泡,它同時(shí)也是功能強(qiáng)大的Web應(yīng)用服務(wù)器。LNMP現(xiàn)在也是非常流行的web環(huán)境愿险,大有和LAMP環(huán)境分庭抗禮之勢(shì)颇蜡,Nginx在處理靜態(tài)頁(yè)面、特別是抗高并發(fā)方面相對(duì)apache有優(yōu)勢(shì)辆亏;
- 7风秤、Nginx現(xiàn)在作為Web反向加速緩存越來(lái)越成熟了,速度比傳統(tǒng)的Squid服務(wù)器更快扮叨,有需求的朋友可以考慮用其作為反向代理加速器缤弦;
Nginx的缺點(diǎn):
- 1、Nginx不支持url來(lái)檢測(cè)彻磁。
- 2碍沐、Nginx僅能支持http和Email,這個(gè)它的弱勢(shì)衷蜓。
- 3累提、Nginx的Session的保持,Cookie的引導(dǎo)能力相對(duì)欠缺磁浇。
HAProxy的優(yōu)點(diǎn):
- 1斋陪、HAProxy是支持虛擬主機(jī)的,可以工作在4置吓、7層(支持多網(wǎng)段)衍锚;
- 2、能夠補(bǔ)充Nginx的一些缺點(diǎn)比如Session的保持咆爽,Cookie的引導(dǎo)等工作斗埂;
- 3萄窜、支持url檢測(cè)后端的服務(wù)器攀唯;
- 4崭捍、它跟LVS一樣殷蛇,本身僅僅就只是一款負(fù)載均衡軟件粒梦;單純從效率上來(lái)講HAProxy更會(huì)比Nginx有更出色的負(fù)載均衡速度匀们,在并發(fā)處理上也是優(yōu)于Nginx的重抖;
- 5、HAProxy可以對(duì)Mysql讀進(jìn)行負(fù)載均衡夫植,對(duì)后端的MySQL節(jié)點(diǎn)進(jìn)行檢測(cè)和負(fù)載均衡详民,不過(guò)在后端的MySQL slaves數(shù)量超過(guò)10臺(tái)時(shí)性能不如LVS陌兑;
- 6兔综、HAProxy的算法較多,達(dá)到8種涧窒;
個(gè)人介紹:
高廣超 :多年一線互聯(lián)網(wǎng)研發(fā)與架構(gòu)設(shè)計(jì)經(jīng)驗(yàn)纠吴,擅長(zhǎng)設(shè)計(jì)與落地高可用戴已、高性能互聯(lián)網(wǎng)架構(gòu)糖儡。目前就職于美團(tuán)網(wǎng)休玩,負(fù)責(zé)核心業(yè)務(wù)研發(fā)工作永部。