對(duì)于數(shù)據(jù)流量過(guò)大的網(wǎng)絡(luò)中,往往單一設(shè)備無(wú)法承擔(dān),需要多臺(tái)設(shè)備進(jìn)行數(shù)據(jù)分流敷硅,而負(fù)載均衡器就是用來(lái)將數(shù)據(jù)分流到多臺(tái)設(shè)備的一個(gè)轉(zhuǎn)發(fā)器。
目前有許多不同的負(fù)載均衡技術(shù)用以滿足不同的應(yīng)用需求墓赴,如軟/硬件負(fù)載均衡竞膳、本地/全局負(fù)載均衡航瞭、更高網(wǎng)絡(luò)層負(fù)載均衡诫硕,以及鏈路聚合技術(shù)。
我們使用的是軟負(fù)載均衡器Nginx,而農(nóng)行用的是F5硬負(fù)載均衡器刊侯,這里就簡(jiǎn)單介紹下這兩種技術(shù):
a.軟件負(fù)載均衡解決方案
在一臺(tái)服務(wù)器的操作系統(tǒng)上章办,安裝一個(gè)附加軟件來(lái)實(shí)現(xiàn)負(fù)載均衡,如Nginx負(fù)載均衡(我們管理系統(tǒng)平臺(tái)使用的也是這款均衡器)。它的優(yōu)點(diǎn)是基于特定環(huán)境藕届、配置簡(jiǎn)單挪蹭、使用靈活、成本低廉休偶,可以滿足大部分的負(fù)載均衡需求梁厉。
一、什么是Nginx,LVS
Nginx ("engine x") 是一個(gè)高性能的 HTTP 和 反向代理 服務(wù)器踏兜,也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器词顾。 可以說(shuō)Nginx 是目前使用最為廣泛的HTTP軟負(fù)載均衡器,其將源代碼以類BSD許可證的形式發(fā)布(商業(yè)友好)碱妆,同時(shí)因高效的性能肉盹、穩(wěn)定性、豐富的功能集疹尾、示例配置文件和低系統(tǒng)資源的消耗而聞名于業(yè)界上忍。像騰訊、淘寶纳本、新浪等大型門戶及商業(yè)網(wǎng)站都采用Nginx進(jìn)行HTTP網(wǎng)站的數(shù)據(jù)分流窍蓝。
二、Nginx的功能特點(diǎn)
1饮醇、工作在網(wǎng)絡(luò)的7層之上它抱,可以針對(duì)http應(yīng)用做一些分流的策略,比如針對(duì)域名朴艰、目錄結(jié)構(gòu)观蓄;
2、Nginx對(duì)網(wǎng)絡(luò)的依賴比較徐羰侮穿;
3、Nginx安裝和配置比較簡(jiǎn)單毁嗦,測(cè)試起來(lái)比較方便亲茅;
4、也可以承擔(dān)高的負(fù)載壓力且穩(wěn)定狗准,一般能支撐超過(guò)1萬(wàn)次的并發(fā)克锣;
5、Nginx可以通過(guò)端口檢測(cè)到服務(wù)器內(nèi)部的故障腔长,比如根據(jù)服務(wù)器處理網(wǎng)頁(yè)返回的狀態(tài)碼袭祟、超時(shí)等等,www.linuxidc.com 并且會(huì)把返回錯(cuò)誤的請(qǐng)求重新提交到另一個(gè)節(jié)點(diǎn)捞附,不過(guò)其中缺點(diǎn)就是不支持url來(lái)檢測(cè)巾乳;
6您没、Nginx對(duì)請(qǐng)求的異步處理可以幫助節(jié)點(diǎn)服務(wù)器減輕負(fù)載;
7胆绊、Nginx能支持http和Email氨鹏,這樣就在適用范圍上面小很多;
8压状、不支持Session的保持仆抵、對(duì)Big request header的支持不是很好,另外默認(rèn)的只有Round-robin和IP-hash兩種負(fù)載均衡算法种冬。
三肢础、Nginx的原理
Nginx采用的是反向代理技術(shù),代理服務(wù)器來(lái)接受internet上的連接請(qǐng)求碌廓,然后將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器传轰,并將從服務(wù)器上得到的結(jié)果返回給internet上請(qǐng)求連接的客戶端,此時(shí)代理服務(wù)器對(duì)外就表現(xiàn)為一個(gè)服務(wù)器谷婆。反向代理負(fù)載均衡技術(shù)是把將來(lái)自internet上的連接請(qǐng)求以反向代理的方式動(dòng)態(tài)地轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的多臺(tái)服務(wù)器進(jìn)行處理慨蛙,從而達(dá)到負(fù)載均衡的目的。
b.硬件負(fù)載均衡解決方案
直接在服務(wù)器和外部網(wǎng)絡(luò)間安裝負(fù)載均衡設(shè)備纪挎,這種設(shè)備我們通常稱之為負(fù)載均衡器期贫。由于專門的設(shè)備完成專門的任務(wù),獨(dú)立于操作系統(tǒng)异袄,整體性能得到大量提高通砍,加上多樣化的負(fù)載均衡策略,智能化的流量管理烤蜕,可達(dá)到最佳的負(fù)載均衡需求封孙。 一般而言,硬件負(fù)載均衡在功能讽营、性能上優(yōu)于軟件方式虎忌,不過(guò)成本昂貴,比如最常見(jiàn)的就是F5負(fù)載均衡器橱鹏。
什么是F5 BIG-IP
F5負(fù)載均衡器是應(yīng)用交付網(wǎng)絡(luò)的全球領(lǐng)導(dǎo)者F5 Networks公司提供的一個(gè)負(fù)載均衡器專用設(shè)備膜蠢,F(xiàn)5 BIG-IP LTM 的官方名稱叫做本地流量管理器,可以做4-7層負(fù)載均衡莉兰,具有負(fù)載均衡挑围、應(yīng)用交換、會(huì)話交換糖荒、狀態(tài)監(jiān)控杉辙、智能網(wǎng)絡(luò)地址轉(zhuǎn)換、通用持續(xù)性寂嘉、響應(yīng)錯(cuò)誤處理奏瞬、IPv6網(wǎng)關(guān)、高級(jí)路由泉孩、智能端口鏡像硼端、SSL加速、智能HTTP壓縮寓搬、TCP優(yōu)化珍昨、第7層速率整形、內(nèi)容緩沖句喷、內(nèi)容轉(zhuǎn)換镣典、連接加速、高速緩存唾琼、Cookie加密兄春、選擇性內(nèi)容加密、應(yīng)用攻擊過(guò)濾锡溯、拒絕服務(wù)(DoS)攻擊和SYN Flood保護(hù)赶舆、防火墻—包過(guò)濾、包消毒等功能祭饭。
以下是F5 BIG-IP用作HTTP負(fù)載均衡器的主要功能:
①芜茵、F5 BIG-IP提供12種靈活的算法將所有流量均衡的分配到各個(gè)服務(wù)器,而面對(duì)用戶倡蝙,只是一臺(tái)虛擬服務(wù)器九串。
②、F5 BIG-IP可以確認(rèn)應(yīng)用程序能否對(duì)請(qǐng)求返回對(duì)應(yīng)的數(shù)據(jù)寺鸥。假如F5 BIG-IP后面的某一臺(tái)服務(wù)器發(fā)生服務(wù)停止猪钮、死機(jī)等故障,F(xiàn)5會(huì)檢查出來(lái)并將該服務(wù)器標(biāo)識(shí)為宕機(jī)胆建,從而不將用戶的訪問(wèn)請(qǐng)求傳送到該臺(tái)發(fā)生故障的服務(wù)器上躬贡。這樣,只要其它的服務(wù)器正常眼坏,用戶的訪問(wèn)就不會(huì)受到影響拂玻。宕機(jī)一旦修復(fù),F(xiàn)5 BIG-IP就會(huì)自動(dòng)查證應(yīng)用已能對(duì)客戶請(qǐng)求作出正確響應(yīng)并恢復(fù)向該服務(wù)器傳送宰译。
③檐蚜、F5 BIG-IP具有動(dòng)態(tài)Session的會(huì)話保持功能。
④沿侈、F5 BIG-IP的iRules功能可以做HTTP內(nèi)容過(guò)濾闯第,根據(jù)不同的域名、URL缀拭,將訪問(wèn)請(qǐng)求傳送到不同的服務(wù)器咳短。
方案優(yōu)缺點(diǎn)對(duì)比
基于硬件的方式(F5)
優(yōu)點(diǎn):能夠直接通過(guò)智能交換機(jī)實(shí)現(xiàn),處理能力更強(qiáng)填帽,而且與系統(tǒng)無(wú)關(guān),負(fù)載性能強(qiáng)更適用于一大堆設(shè)備咙好、大訪問(wèn)量篡腌、簡(jiǎn)單應(yīng)用
缺點(diǎn):成本高,除設(shè)備價(jià)格高昂勾效,而且配置冗余.很難想象后面服務(wù)器做一個(gè)集群嘹悼,但最關(guān)鍵的負(fù)載均衡設(shè)備卻是單點(diǎn)配置;無(wú)法有效掌握服務(wù)器及應(yīng)用狀態(tài).
硬件負(fù)載均衡层宫,一般都不管實(shí)際系統(tǒng)與應(yīng)用的狀態(tài)杨伙,而只是從網(wǎng)絡(luò)層來(lái)判斷,所以有時(shí)候系統(tǒng)處理能力已經(jīng)不行了萌腿,但網(wǎng)絡(luò)可能還來(lái) 得及反應(yīng)(這種情況非常典型限匣,比如應(yīng)用服務(wù)器后面內(nèi)存已經(jīng)占用很多,但還沒(méi)有徹底不行毁菱,如果網(wǎng)絡(luò)傳輸量不大就未必在網(wǎng)絡(luò)層能反映出來(lái))
基于軟件的方式(Nginx)
優(yōu)點(diǎn):基于系統(tǒng)與應(yīng)用的負(fù)載均衡膛腐,能夠更好地根據(jù)系統(tǒng)與應(yīng)用的狀況來(lái)分配負(fù)載。這對(duì)于復(fù)雜應(yīng)用是很重要的鼎俘,性價(jià)比高哲身,實(shí)際上如果幾臺(tái)服務(wù)器,用F5之類的硬件產(chǎn)品顯得有些浪費(fèi)贸伐,而用軟件就要合算得多勘天,因?yàn)榉?wù)器同時(shí)還可以跑應(yīng)用做集群等。
缺點(diǎn):負(fù)載能力受服務(wù)器本身性能的影響捉邢,性能越好脯丝,負(fù)載能力越大。
綜述:對(duì)我們管理系統(tǒng)應(yīng)用環(huán)境來(lái)說(shuō)伏伐,由于負(fù)載均衡器本身不需要對(duì)數(shù)據(jù)進(jìn)行處理宠进,性能瓶頸更多的是在于后臺(tái)服務(wù)器,通常采用軟負(fù)載均衡器已非常夠用且其商業(yè)友好的軟件源碼授權(quán)使得我們可以非常靈活的設(shè)計(jì)藐翎,無(wú)逢的和我們管理系統(tǒng)平臺(tái)相結(jié)合材蹬。