本篇文章給大家談?wù)勜?fù)載均衡設(shè)備,以及應(yīng)用負(fù)載均衡設(shè)備對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。
負(fù)載均衡:F5,Haproxy,lvs, nginx
閱讀本文前,需熟悉OSI七層參考模型。
常見(jiàn)的負(fù)載均衡設(shè)備,有F5,Haproxy,lvs, nginx等。
F5是商用硬件負(fù)載均衡,性能很好,但是價(jià)格昂貴,除了負(fù)載均衡,還有應(yīng)用交換、會(huì)話交換、狀態(tài)監(jiān)控等眾多功能。
F5一般做四層負(fù)載均衡,但也支持七層負(fù)載均衡。
Haproxy(以下簡(jiǎn)稱ha)是軟件負(fù)載均衡,開(kāi)源,一般做七層負(fù)載均衡,但也支持四層負(fù)載均衡。
Linux Virtual Server(以下簡(jiǎn)稱lvs)是軟件負(fù)載均衡,開(kāi)源,二層或四層負(fù)載均衡,已集成到linux內(nèi)核,自身有完備的熱備方案(keepalived+lvs),穩(wěn)定性極強(qiáng)。
nginx也是軟件負(fù)載均衡,開(kāi)源,通過(guò)反向代理實(shí)現(xiàn)負(fù)載均衡,是七層負(fù)載均衡,性能不如上面的幾個(gè)。
tips1
有些公司,測(cè)試環(huán)境用ha/lvs/nginx,生產(chǎn)環(huán)境用F5。
tips2
nginx做web服務(wù)器時(shí),一般做靜態(tài)資源服務(wù)器和山寬php的web服務(wù)器,所以很多公司,會(huì)采用F5+nginx或者h(yuǎn)a+nginx的架構(gòu)
tips3
微服務(wù)中的ribbon屬于客戶端負(fù)載均衡,上面的幾種都是服務(wù)端負(fù)載均衡
二層負(fù)載均衡
在數(shù)據(jù)鏈路層通過(guò)修改mac地址實(shí)現(xiàn),如lvs的DR模式(直接路由模式)
三層負(fù)載均衡
在网络層通過(guò)DNAT協(xié)議修改目標(biāo)地址實(shí)現(xiàn)
四層負(fù)載均衡
用ip+端口實(shí)現(xiàn)請(qǐng)求轉(zhuǎn)發(fā)
備注:tcp報(bào)文里并沒(méi)有ip,但是四層負(fù)載均衡可以用ip+端口,是因?yàn)閟erver可以拿到ip
七層負(fù)載均衡
通過(guò)重新發(fā)起http請(qǐng)求實(shí)現(xiàn),即client把請(qǐng)求發(fā)給lb,lb把請(qǐng)求代發(fā)給server,再把server的響應(yīng)返回給client,因此七層負(fù)載均衡也經(jīng)常被稱為代理,七層負(fù)載均衡設(shè)備也被稱為代理設(shè)備。
七層負(fù)載均衡常用于內(nèi)網(wǎng)與外網(wǎng)的通信,比如內(nèi)網(wǎng)無(wú)法直接訪問(wèn)外網(wǎng),需要通過(guò)代理設(shè)備代發(fā)http請(qǐng)求,這種情況下,代理設(shè)備需要配置雙網(wǎng)卡,以同時(shí)與內(nèi)外网络通信。
由于需要重發(fā)http請(qǐng)求,七層負(fù)載均衡性能較差,但是更智能和安全,因?yàn)閼?yīng)用層可以獲取甚至修改請(qǐng)求的真實(shí)嘩唯歲內(nèi)容(即應(yīng)用數(shù)據(jù)),比如cookie、url等,可以做一些智能的操作,比如根據(jù)cookie/url轉(zhuǎn)發(fā)請(qǐng)求,也可以做一些安全操作亂睜,比如過(guò)濾特定報(bào)文、防止SYN Flood攻擊等。
使用七層負(fù)載均衡時(shí),服務(wù)的性能受限于代理設(shè)備的網(wǎng)卡帶寬。
常見(jiàn)的負(fù)載均衡策略,有輪詢、加權(quán)輪詢、ip_hash、cookie、url_hash,根據(jù)服務(wù)器響應(yīng)時(shí)間轉(zhuǎn)發(fā)、根據(jù)最少連接轉(zhuǎn)發(fā)等等。
備注:nginx可以安裝第三方插件,使用第三方實(shí)現(xiàn)的策略
輪詢:按服務(wù)器列表順序轉(zhuǎn)發(fā)請(qǐng)求,輪詢是nginx默認(rèn)的策略,本策略適合服務(wù)器配置相當(dāng)、請(qǐng)求無(wú)狀態(tài)(即不依賴session)的場(chǎng)景
加權(quán)輪詢:如果不同服務(wù)器配置不同,可以為配置高的服務(wù)器增加權(quán)重
ip_hash:根據(jù)ip哈希結(jié)果轉(zhuǎn)發(fā),可以實(shí)現(xiàn)同一用戶持續(xù)請(qǐng)求同一服務(wù)器(即會(huì)話保持),適合有狀態(tài)(即依賴session)的場(chǎng)景,對(duì)png、jpg、js、css等靜態(tài)資源的請(qǐng)求,不適合使用本策略
cookie:根據(jù)特定cookie轉(zhuǎn)發(fā)請(qǐng)求,一般也是用于實(shí)現(xiàn)會(huì)話保持,比如為服務(wù)器A、B分別增加service-flag=a、service-flag=b的cookie,后續(xù)請(qǐng)求根據(jù)cookie轉(zhuǎn)發(fā)
可以參考 haproxy實(shí)現(xiàn)會(huì)話保持
url_hash:根據(jù)url哈希結(jié)果轉(zhuǎn)發(fā),同一個(gè)接口始終請(qǐng)求同一臺(tái)服務(wù)器,一般配合緩存使用,緩存接口返回結(jié)果
根據(jù)服務(wù)器響應(yīng)時(shí)間轉(zhuǎn)發(fā):優(yōu)先轉(zhuǎn)發(fā)到響應(yīng)時(shí)間較快的服務(wù)器
根據(jù)最少連接轉(zhuǎn)發(fā):優(yōu)先轉(zhuǎn)發(fā)到連接數(shù)較少的服務(wù)器
F5有一些特有的負(fù)載均衡策略:利用從應(yīng)用程序和服務(wù)器收集到的各項(xiàng)性能指標(biāo),分析并轉(zhuǎn)發(fā)
負(fù)載均衡有兩個(gè)步驟:
1.根據(jù)什么算法選擇真實(shí)服務(wù)端,即負(fù)載均衡策略,如輪詢、加權(quán)輪詢、ip_hash、cookie、url_hash等;
2.把請(qǐng)求轉(zhuǎn)發(fā)到真實(shí)服務(wù)器,轉(zhuǎn)發(fā)方式有二層到七層負(fù)載均衡
keepalived軟件一開(kāi)始是專為lvs設(shè)計(jì)的,后來(lái)加入了可以實(shí)現(xiàn)高可用的VRRP (Virtual Router Redundancy Protocol ,虛擬路由器冗余協(xié)議)功能,因此,keepalived還可以作為nginx、haproxy、mysql等服務(wù)的高可用解決方案。
以nginx為例,為了防止nginx本身由于宕機(jī)等原因?qū)е戮W(wǎng)站不可用,一般會(huì)搭兩套nginx反向代理,用keepalived提供一個(gè)VIP。
一般情況下,VIP只在nginx主節(jié)點(diǎn)上工作,如果nginx主節(jié)點(diǎn)不可用了,VIP會(huì)自動(dòng)漂移到從節(jié)點(diǎn),自動(dòng)漂移的原理即VRRP協(xié)議。
VIP漂移到從節(jié)點(diǎn)后,如果主節(jié)點(diǎn)恢復(fù)正常了,VIP是否漂移回主節(jié)點(diǎn),取決于當(dāng)前模式是搶占模式還是非搶占模式。
下圖是一張簡(jiǎn)單的架構(gòu)圖,解釋如下:
以上觀點(diǎn)純屬個(gè)人意見(jiàn),如果錯(cuò)誤,歡迎指出,有些地方寫的很簡(jiǎn)單,是因?yàn)槲乙膊欢畘
負(fù)載均衡器技術(shù)Nginx和F5的優(yōu)缺點(diǎn)對(duì)比
這是網(wǎng)上摘抄的文章,正好想了解一下負(fù)載均衡,看這篇文章寫隱搜的比較易懂,就。。。。
對(duì)于數(shù)據(jù)流量過(guò)大的网络中,往往單一設(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ù)載均衡、更高网络層負(fù)載均衡,以及鏈路聚合技術(shù)。
騰訊、淘宝、新浪等大型門戶及商業(yè)網(wǎng)站使用的是軟負(fù)載均衡器Nginx,而農(nóng)行用的是F5硬負(fù)載均衡器,這里就簡(jiǎn)單介紹下這兩種技術(shù):
一.軟件負(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ù)載均衡需求。
1.什么是Nginx
Nginx ("engine x") 是一個(gè)高性能的HTTP和反向代理服務(wù)器,也是一個(gè)IMAP/POP3/SMTP代理服務(wù)器??梢哉f(shuō)Nginx是目前使用最為廣泛的HTTP軟負(fù)載均衡器,其將源代碼以類BSD許可證的形式發(fā)布(商業(yè)友好),同時(shí)因高效的性能、穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名于業(yè)界。像騰訊、淘宝、新浪等大型門戶及商業(yè)網(wǎng)站都采用Nginx進(jìn)行HTTP網(wǎng)站的數(shù)據(jù)分流。
2.Nginx的功能特點(diǎn)
a.工作在网络的7層之上,可以針對(duì)http應(yīng)用做一些分流的策略,比如針對(duì)域名、目錄結(jié)構(gòu);
b.Nginx對(duì)网络的依賴比較小含或;
c.Nginx安裝和配置比較簡(jiǎn)單,測(cè)試起來(lái)比較方便;
d.也可以承擔(dān)高的負(fù)載壓力且穩(wěn)定,一般能支撐超過(guò)1萬(wàn)次的并發(fā);
e.Nginx可以通過(guò)端口檢測(cè)到服務(wù)器內(nèi)部的故障,比如根據(jù)服務(wù)器處理網(wǎng)頁(yè)返回的狀態(tài)碼、超時(shí)等等,并且會(huì)把返回錯(cuò)誤的請(qǐng)求重新提交到另一個(gè)節(jié)點(diǎn),不過(guò)其中缺點(diǎn)就是不支持url來(lái)檢測(cè);
f.Nginx對(duì)請(qǐng)求的異步處理可以幫助節(jié)點(diǎn)服務(wù)器減輕負(fù)載;
g.Nginx能支持http和Email,這樣就在適用范圍上面小很多;
h.不支持Session的保持、對(duì)Big request header的支持不是很好,另外默認(rèn)的只有Round-robin和IP-hash兩種負(fù)載均衡算法。
3.Nginx的原理
Nginx采用的是反向代理技術(shù),代理服務(wù)器來(lái)接受internet上的連接請(qǐng)求,然后將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部网络上的服務(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)部网络上的多臺(tái)服務(wù)器進(jìn)行處理,從而達(dá)到負(fù)載均衡的目的。
二.硬件負(fù)載均衡解決方案
直接在服務(wù)器和外部网络間安裝負(fù)載均衡設(shè)備,這種設(shè)備我們通常稱之為負(fù)載均衡器。由于專門的設(shè)備完成專門的任務(wù),獨(dú)立于操作系統(tǒng),整體性能得到大量提高,加上多樣化的負(fù)載均衡策略,智能化的流量管理,可達(dá)到最佳的負(fù)載均衡需求。一般而言,硬件負(fù)載均衡在功能、談攜伍性能上優(yōu)于軟件方式,不過(guò)成本昂貴,比如最常見(jiàn)的就是F5負(fù)載均衡器。
1.什么是F5 BIG-IP
F5負(fù)載均衡器是應(yīng)用交付网络的全球領(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)控、智能网络地址轉(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ò)濾、包消毒等功能。
2.F5 BIG-IP用作HTTP負(fù)載均衡器的主要功能
a.F5 BIG-IP提供12種靈活的算法將所有流量均衡的分配到各個(gè)服務(wù)器,而面對(duì)用戶,只是一臺(tái)虛擬服務(wù)器。
b.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ù)器傳送。
c.F5 BIG-IP具有動(dòng)態(tài)Session的會(huì)話保持功能。
d.F5 BIG-IP的iRules功能可以做HTTP內(nèi)容過(guò)濾,根據(jù)不同的域名、URL,將訪問(wèn)請(qǐng)求傳送到不同的服務(wù)器。
三.方案優(yōu)缺點(diǎn)對(duì)比
1.基于硬件的方式(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),而只是從网络層來(lái)判斷,所以有時(shí)候系統(tǒng)處理能力已經(jīng)不行了,但网络可能還來(lái) 得及反應(yīng)(這種情況非常典型,比如應(yīng)用服務(wù)器后面內(nèi)存已經(jīng)占用很多,但還沒(méi)有徹底不行,如果网络傳輸量不大就未必在网络層能反映出來(lái))。
2.基于軟件的方式(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ù)載能力越大。
國(guó)內(nèi)據(jù)說(shuō)迪普和深信服做的不錯(cuò),手頭沒(méi)有啥資料,就不介紹了。

負(fù)載均衡設(shè)備轉(zhuǎn)發(fā)端口轉(zhuǎn)換原理
負(fù)載均衡設(shè)備轉(zhuǎn)發(fā)端口穗悔源轉(zhuǎn)換原理是:我們要使用統(tǒng)一的流量入口來(lái)對(duì)外提供服務(wù),本質(zhì)上就是需要一個(gè)流量調(diào)度器,通過(guò)猜態(tài)均衡的算法,將用戶大量的請(qǐng)求流量均衡地分發(fā)到集群中不同的服務(wù)器上。這其實(shí)就是我們今天要說(shuō)的負(fù)載均衡。
使用負(fù)載均衡可以給我們帶來(lái)的幾個(gè)好處:
1、提高了系統(tǒng)的整體性能;
2、提高了系統(tǒng)的擴(kuò)展性;
3、提高了系統(tǒng)的可用性;
負(fù)載均前耐衡類型:廣義上的負(fù)載均衡器大概可以分為 3 類,包括:DNS 方式實(shí)現(xiàn)負(fù)載均衡、硬件負(fù)載均衡、軟件負(fù)載均衡。
負(fù)載均衡和鏈路均衡設(shè)備分別的作用是什么,請(qǐng)盡可能詳細(xì)謝謝啦。
負(fù)載均衡設(shè)備有二種,服務(wù)器負(fù)載均衡和鏈路負(fù)載均衡:
服務(wù)器臘埋負(fù)載均衡將大并發(fā)的客戶請(qǐng)求均勻分布到不同的服務(wù)器上,例如玩游戲和看電影,假如有1萬(wàn)個(gè)人看同一個(gè)電影或游戲,一臺(tái)服務(wù)器滿足不了,就將同一個(gè)電影或游戲安裝到多臺(tái)服務(wù)器上,同時(shí)運(yùn)行。服務(wù)器負(fù)載均衡器會(huì)根據(jù)每個(gè)服務(wù)器CPU的負(fù)載情況動(dòng)態(tài)將客戶請(qǐng)求分配到不同服務(wù)器,從而解決大并發(fā)請(qǐng)求對(duì)計(jì)算能力的要求。
鏈路負(fù)載均衡負(fù)責(zé)网络的負(fù)載均衡。例如南方電信和北方聯(lián)通存在互聯(lián)互通問(wèn)題,鏈路負(fù)載氏局櫻均衡器會(huì)自動(dòng)判斷殲叢那條線路的速度快,并選擇最快的線路。









