個(gè)人專(zhuān)題目錄
LVS陨闹,Nginx和HAProxy負(fù)載均衡對(duì)比
Nginx支持TCP代理和負(fù)載均衡-stream模塊
LVS特點(diǎn):
1.抗負(fù)載能力強(qiáng)扑浸,使用IP負(fù)載均衡技術(shù),只做分發(fā)梁丘,所以LVS本身并沒(méi)有多少流量產(chǎn)生侵浸;
2.穩(wěn)定性、可靠性好兰吟,自身有完美的熱備方案通惫;(如:LVS+Keepalived)
3.應(yīng)用范圍比較廣,可以對(duì)所有應(yīng)用做負(fù)載均衡混蔼;
4.不支持正則處理,不能做動(dòng)靜分離珊燎。
常用四種算法:
1.rr:輪叫惭嚣,輪流分配到后端服務(wù)器遵湖;
2.wrr:權(quán)重輪叫,根據(jù)后端服務(wù)器負(fù)載情況來(lái)分配晚吞;
3.lc:最小連接延旧,分配已建立連接最少的服務(wù)器上;
4.wlc:權(quán)重最小連接槽地,根據(jù)后端服務(wù)器處理能力來(lái)分配迁沫。
Nginx特點(diǎn):
1.工作在7層,可以對(duì)做正則規(guī)則處理捌蚊;(如:針對(duì)域名集畅、目錄進(jìn)行分流)
2.配置簡(jiǎn)單,能ping通就能進(jìn)行負(fù)載功能缅糟,可以通過(guò)端口檢測(cè)后端服務(wù)器狀態(tài)挺智,不支持url檢測(cè);
3.抗高并發(fā)窗宦,采用epoll網(wǎng)絡(luò)模型處理客戶(hù)請(qǐng)求赦颇;
4.只支持HTTP和EMail,應(yīng)用范圍比較少赴涵;
5.nginx主要是HTTP和反向代理服務(wù)器媒怯,低系統(tǒng)資源消耗。
常用四種算法:
1.RR:(默認(rèn))輪詢(xún)髓窜,輪流分配到后端服務(wù)器扇苞;
2.weight:根據(jù)后端服務(wù)器性能分配;
3.ip_hash:每個(gè)請(qǐng)求按訪問(wèn)ip的hash結(jié)果進(jìn)行分配纱烘,并發(fā)小時(shí)合適杨拐,解決session問(wèn)題;
4.fair:(擴(kuò)展策略)擂啥,默認(rèn)不被編譯nginx內(nèi)核哄陶,根據(jù)后端服務(wù)器響應(yīng)時(shí)間判斷負(fù)載情況,選擇最輕的進(jìn)行處理哺壶。
HAProxy特點(diǎn):
1.支持兩種代理模式:TCP(四層)和HTTP(七層)屋吨,支持虛擬主機(jī);
2.配置簡(jiǎn)單山宾,支持url檢測(cè)后端服務(wù)器狀態(tài)至扰;
3.僅做負(fù)載均衡軟件使用,在高并發(fā)情況下资锰,處理速度高于nginx敢课;
4.TCP層多用于Mysql從(讀)服務(wù)器負(fù)載均衡。
四種常用算法:
1.roundrobin:輪詢(xún),輪流分配到后端服務(wù)器直秆;
2.static-rr:根據(jù)后端服務(wù)器性能分配濒募;
3.leastconn:最小連接者優(yōu)先處理;
4.source:根據(jù)請(qǐng)求源IP圾结,與Nginx的IP_Hash類(lèi)似瑰剃。
解決session的原因:
負(fù)載均衡環(huán)境下,每個(gè)用戶(hù)都有可能不固定的訪問(wèn)后端服務(wù)器筝野,在有些應(yīng)用情況下晌姚,是必須要求在一定時(shí)間內(nèi)同一用戶(hù)訪問(wèn)的所有請(qǐng)求都分配給后端同一臺(tái)服務(wù)器去處理,例如:電子商務(wù)網(wǎng)站歇竟,用戶(hù)注冊(cè)頁(yè)面等挥唠,一刷新頁(yè)面,就會(huì)分配到后端的另一臺(tái)服務(wù)器上途蒋,那剛才的頁(yè)面上的信息也都沒(méi)了猛遍,這種情況下,分配同一臺(tái)服務(wù)器處理請(qǐng)求是至關(guān)重要的号坡!
lvs優(yōu)點(diǎn):
是三個(gè)集群軟件中性能和穩(wěn)定性最高的(但是配置管理卻是最復(fù)雜的)
工作在4層傳輸層懊烤,只用來(lái)做分發(fā)工作,并無(wú)流量的產(chǎn)生
幾乎支持所有的應(yīng)用宽堆,如:http腌紧,mysql,email等等
對(duì)網(wǎng)絡(luò)要求很高畜隶,若是采用DR方式壁肋,最好用同一網(wǎng)段進(jìn)行通信(LB與后端web)
nginx:
工作在7層應(yīng)用層,可以對(duì)http應(yīng)用層實(shí)現(xiàn)分流策略(如:根據(jù)域名籽慢,根據(jù)目錄結(jié)構(gòu))
只支持http和email
對(duì)網(wǎng)絡(luò)要求不是很高浸遗,理論上只要ping的通,就可以正常工作(nginx與后端web)
建議:
如果公司的網(wǎng)站比較小箱亿,訪問(wèn)人數(shù)不是很多跛锌,可以采用nginx來(lái)做負(fù)載均衡
但是若公司網(wǎng)站規(guī)模較大,達(dá)到門(mén)戶(hù)級(jí)別届惋,建議采用lvs