簡述四層和七層負載均衡的特點及Haproxy與LVS之間的對比

負載均衡對比

本文部分內(nèi)容來自:http://www.ha97.com/5646.html

一荒适、四層和七層負載均衡的區(qū)別

  • 1舶治、四層負載均衡器也稱為四層交換機,它主要是通過分析ip層及tcp/udp層的流量實現(xiàn)的基于ip+端口

  • 2郊艘、tcp應用實例:負載均衡器在接收到第一個來自SYN請求時玻佩,會通過設(shè)定的負載均衡算法選擇一臺最佳的后端服務器出嘹,同時將報文中的目標ip修改為后端服務器ip,然后直接轉(zhuǎn)發(fā)給該服務器咬崔。負載均衡器在這個過程中相當于一個路由器的作用

  • 3税稼、七層負載均衡器也稱為7層交換機,位于iso應用層垮斯,支持多種應用協(xié)議郎仆,常見的HTTP,FTP,SMTP等。七層負載均衡器可以根據(jù)報文內(nèi)容兜蠕,再配合負載均衡算法來選擇后端服務器扰肌。因此也稱為“內(nèi)容交換機”。七層負載均衡器在這個情況下類似于一個代理服務器熊杨。

二曙旭、LVS應用特點

LVS:使用Linux內(nèi)核集群實現(xiàn)一個高性能盗舰、高可用的負載均衡服務器,它具有很好的可伸縮性(Scalability)桂躏、可靠性(Reliability)和可管理性(Manageability)钻趋。

LVS的優(yōu)點是:

  • 1、抗負載能力強剂习、是工作在網(wǎng)絡(luò)4層之上僅作分發(fā)之用蛮位,沒有流量的產(chǎn)生,這個特點也決定了它在負載均衡軟件里的性能最強的鳞绕,對內(nèi)存和cpu資源消耗比較低土至。

  • 2、配置性比較低猾昆,這是一個缺點也是一個優(yōu)點陶因,因為沒有可太多配置的東西,所以并不需要太多接觸垂蜗,大大減少了人為出錯的幾率楷扬。

  • 3、工作穩(wěn)定贴见,因為其本身抗負載能力很強烘苹,自身有完整的雙機熱備方案,如LVS+Keepalived片部,不過我們在項目實施中用得最多的還是LVS/DR+Keepalived镣衡。

  • 4、無流量档悠,LVS只分發(fā)請求廊鸥,而流量并不從它本身出去,這點保證了均衡器IO的性能不會收到大流量的影響辖所。

  • 5惰说、應用范圍比較廣,因為LVS工作在4層缘回,所以它幾乎可以對所有應用做負載均衡吆视,包括http、數(shù)據(jù)庫酥宴、在線聊天室等等啦吧。

LVS的缺點是:

  • 1、軟件本身不支持正則表達式處理拙寡,不能做動靜分離授滓;而現(xiàn)在許多網(wǎng)站在這方面都有較強的需求,這個是Nginx/HAProxy+Keepalived的優(yōu)勢所在。

  • 2褒墨、如果是網(wǎng)站應用比較龐大的話,LVS/DR+Keepalived實施起來就比較復雜了擎宝,特別后面有Windows Server的機器的話郁妈,如果實施及配置還有維護過程就比較復雜了,相對而言绍申,Nginx/HAProxy+Keepalived就簡單多了噩咪。

三、Nginx應用特點

Nginx的優(yōu)點是:

  • 1极阅、工作在網(wǎng)絡(luò)的7層之上胃碾,可以針對http應用做一些分流的策略,比如針對域名筋搏、目錄結(jié)構(gòu)仆百,它的正則規(guī)則比HAProxy更為強大和靈活,這也是它目前廣泛流行的主要原因之一奔脐,Nginx單憑這點可利用的場合就遠多于LVS了俄周。

  • 2、Nginx對網(wǎng)絡(luò)穩(wěn)定性的依賴非常小髓迎,理論上能ping通就就能進行負載功能峦朗,這個也是它的優(yōu)勢之一;相反LVS對網(wǎng)絡(luò)穩(wěn)定性依賴比較大排龄,這點本人深有體會波势;

  • 3、Nginx安裝和配置比較簡單橄维,測試起來比較方便尺铣,它基本能把錯誤用日志打印出來。LVS的配置争舞、測試就要花比較長的時間了迄埃,LVS對網(wǎng)絡(luò)依賴比較大。

  • 4兑障、可以承擔高負載壓力且穩(wěn)定侄非,在硬件不差的情況下一般能支撐幾萬次的并發(fā)量,負載度比LVS相對小些流译。

  • 5逞怨、Nginx可以通過端口檢測到服務器內(nèi)部的故障,比如根據(jù)服務器處理網(wǎng)頁返回的狀態(tài)碼福澡、超時等等叠赦,并且會把返回錯誤的請求重新提交到另一個節(jié)點,不過其中缺點就是不支持url來檢測。比如用戶正在上傳一個文件除秀,而處理該上傳的節(jié)點剛好在上傳過程中出現(xiàn)故障糯累,Nginx會把上傳切到另一臺服務器重新處理,而LVS就直接斷掉了册踩,如果是上傳一個很大的文件或者很重要的文件的話泳姐,用戶可能會因此而不滿。

  • 6暂吉、Nginx不僅僅是一款優(yōu)秀的負載均衡器/反向代理軟件胖秒,它同時也是功能強大的Web應用服務器。LNMP也是近幾年非常流行的web架構(gòu)慕的,在高流量的環(huán)境中穩(wěn)定性也很好阎肝。

  • 7、Nginx現(xiàn)在作為Web反向加速緩存越來越成熟了肮街,速度比傳統(tǒng)的Squid服務器更快风题,可以考慮用其作為反向代理加速器。

  • 8嫉父、Nginx可作為中層反向代理使用俯邓,這一層面Nginx基本上無對手,唯一可以對比Nginx的就只有l(wèi)ighttpd了熔号,不過lighttpd目前還沒有做到Nginx完全的功能稽鞭,配置也不那么清晰易讀,社區(qū)資料也遠遠沒Nginx活躍引镊。

  • 9朦蕴、Nginx也可作為靜態(tài)網(wǎng)頁和圖片服務器,這方面的性能也無對手弟头。還有Nginx社區(qū)非撤宰ィ活躍,第三方模塊也很多赴恨。

Nginx的缺點是:

  • 1疹娶、Nginx僅能支持http、https和Email協(xié)議伦连,這樣就在適用范圍上面小些雨饺,這個是它的缺點。

  • 2惑淳、對后端服務器的健康檢查额港,只支持通過端口來檢測,不支持通過url來檢測歧焦。不支持Session的直接保持移斩,但能通過ip_hash來解決。

四、HAProxy應用特點

HAProxy的優(yōu)點:

  • 1向瓷、HAProxy也是支持虛擬主機的肠套。

  • 2、HAProxy的優(yōu)點能夠補充Nginx的一些缺點猖任,比如支持Session的保持你稚,Cookie的引導;同時支持通過獲取指定的url來檢測后端服務器的狀態(tài)超升。

  • 3入宦、HAProxy跟LVS類似哺徊,本身就只是一款負載均衡軟件室琢;單純從效率上來講HAProxy會比Nginx有更出色的負載均衡速度,在并發(fā)處理上也是優(yōu)于Nginx的落追。

  • 4盈滴、HAProxy支持TCP協(xié)議的負載均衡轉(zhuǎn)發(fā),可以對MySQL讀進行負載均衡轿钠,對后端的MySQL節(jié)點進行檢測和負載均衡巢钓,大家可以用LVS+Keepalived對MySQL主從做負載均衡。

  • 5疗垛、HAProxy負載均衡策略非常多症汹,HAProxy的負載均衡算法現(xiàn)在具體有如下8種:
    ① roundrobin,表示簡單的輪詢贷腕,這個不多說背镇,這個是負載均衡基本都具備的;
    ② static-rr泽裳,表示根據(jù)權(quán)重瞒斩,建議關(guān)注;
    ③ leastconn涮总,表示最少連接者先處理胸囱,建議關(guān)注;
    ④ source瀑梗,表示根據(jù)請求源IP烹笔,這個跟Nginx的IP_hash機制類似,我們用其作為解決session問題的一種方法抛丽,建議關(guān)注箕宙;
    ⑤ ri,表示根據(jù)請求的URI铺纽;
    ⑥ rl_param柬帕,表示根據(jù)請求的URl參數(shù)’balance url_param’ requires an URL parameter name;
    ⑦ hdr(name),表示根據(jù)HTTP請求頭來鎖定每一次HTTP請求陷寝;
    ⑧ rdp-cookie(name)锅很,表示根據(jù)據(jù)cookie(name)來鎖定并哈希每一次TCP請求。

HAPorxy缺點:

    1. 不支持POP/SMTP協(xié)議凤跑、SPDY協(xié)議
    1. 不支持HTTP cache緩存功能”玻現(xiàn)在不少開源的lb項目,都或多或少具備HTTP cache功能仔引。
    1. 重載配置的功能需要重啟進程扔仓,雖然也是soft restart,但沒有Nginx的reaload更為平滑和友好咖耘。
    1. 多進程模式支持不夠好

五翘簇、Nginx和LVS對比的總結(jié):

  • 1、Nginx工作在網(wǎng)絡(luò)的7層儿倒,所以它可以針對http應用本身來做分流策略版保,比如針對域名、目錄結(jié)構(gòu)等夫否,相比之下LVS并不具備這樣的功能彻犁,所以Nginx單憑這點可利用的場合就遠多于LVS了;但Nginx有用的這些功能使其可調(diào)整度要高于LVS凰慈,所以經(jīng)常要去觸碰觸碰汞幢,觸碰多了,人為出問題的幾率也就會大微谓。

  • 2森篷、Nginx對網(wǎng)絡(luò)穩(wěn)定性的依賴較小,理論上只要ping得通堰酿,網(wǎng)頁訪問正常疾宏,Nginx就能連得通,這是Nginx的一大優(yōu)勢触创!Nginx同時還能區(qū)分內(nèi)外網(wǎng)坎藐,如果是同時擁有內(nèi)外網(wǎng)的節(jié)點,就相當于單機擁有了備份線路哼绑;LVS就比較依賴于網(wǎng)絡(luò)環(huán)境岩馍,目前來看服務器在同一網(wǎng)段內(nèi)并且LVS使用direct方式分流,效果較能得到保證抖韩。另外注意蛀恩,LVS需要向托管商至少申請多一個ip來做Visual IP,貌似是不能用本身的IP來做VIP的茂浮。要做好LVS管理員双谆,確實得跟進學習很多有關(guān)網(wǎng)絡(luò)通信方面的知識壳咕,就不再是一個HTTP那么簡單了。

  • 3顽馋、Nginx安裝和配置比較簡單谓厘,測試起來也很方便,因為它基本能把錯誤用日志打印出來寸谜。LVS的安裝和配置竟稳、測試就要花比較長的時間了;LVS對網(wǎng)絡(luò)依賴比較大熊痴,很多時候不能配置成功都是因為網(wǎng)絡(luò)問題而不是配置問題他爸,出了問題要解決也相應的會麻煩得多。

  • 4果善、Nginx也同樣能承受很高負載且穩(wěn)定诊笤,但負載度和穩(wěn)定度差LVS還有幾個等級:Nginx處理所有流量所以受限于機器IO和配置;本身的bug也還是難以避免的岭埠。

  • 5盏混、Nginx可以檢測到服務器內(nèi)部的故障蔚鸥,比如根據(jù)服務器處理網(wǎng)頁返回的狀態(tài)碼惜论、超時等等,并且會把返回錯誤的請求重新提交到另一個節(jié)點止喷。目前LVS中 ldirectd也能支持針對服務器內(nèi)部的情況來監(jiān)控馆类,但LVS的原理使其不能重發(fā)請求。比如用戶正在上傳一個文件弹谁,而處理該上傳的節(jié)點剛好在上傳過程中出現(xiàn)故障乾巧,Nginx會把上傳切到另一臺服務器重新處理,而LVS就直接斷掉了预愤,如果是上傳一個很大的文件或者很重要的文件的話沟于,用戶可能會因此而惱火。

  • 6植康、Nginx對請求的異步處理可以幫助節(jié)點服務器減輕負載旷太,假如使用apache直接對外服務,那么出現(xiàn)很多的窄帶鏈接時apache服務器將會占用大 量內(nèi)存而不能釋放销睁,使用多一個Nginx做apache代理的話供璧,這些窄帶鏈接會被Nginx擋住,apache上就不會堆積過多的請求冻记,這樣就減少了相當多的資源占用睡毒。這點使用squid也有相同的作用,即使squid本身配置為不緩存冗栗,對apache還是有很大幫助的演顾。

  • 7供搀、Nginx能支持http、https和email(email的功能比較少用)钠至,LVS所支持的應用在這點上會比Nginx更多趁曼。在使用上,一般最前端所采取的策略應是LVS棕洋,也就是DNS的指向應為LVS均衡器挡闰,LVS的優(yōu)點令它非常適合做這個任務。重要的ip地址掰盘,最好交由LVS托管摄悯,比如數(shù)據(jù)庫的 ip、webservice服務器的ip等等愧捕,這些ip地址隨著時間推移奢驯,使用面會越來越大,如果更換ip則故障會接踵而至次绘。所以將這些重要ip交給 LVS托管是最為穩(wěn)妥的瘪阁,這樣做的唯一缺點是需要的VIP數(shù)量會比較多。Nginx可作為LVS節(jié)點機器使用邮偎,一是可以利用Nginx的功能管跺,二是可以利用Nginx的性能。當然這一層面也可以直接使用squid禾进,squid的功能方面就比Nginx弱不少了豁跑,性能上也有所遜色于Nginx。Nginx也可作為中層代理使用泻云,這一層面Nginx基本上無對手艇拍,唯一可以撼動Nginx的就只有l(wèi)ighttpd了,不過lighttpd目前還沒有能做到 Nginx完全的功能宠纯,配置也不那么清晰易讀卸夕。另外,中層代理的IP也是重要的婆瓜,所以中層代理也擁有一個VIP和LVS是最完美的方案了快集。具體的應用還得具體分析,如果是比較小的網(wǎng)站(日PV小于1000萬)勃救,用Nginx就完全可以了碍讨,如果機器也不少,可以用DNS輪詢蒙秒,LVS所耗費的機器還是比較多的勃黍;大型網(wǎng)站或者重要的服務,機器不發(fā)愁的時候晕讲,要多多考慮利用LVS覆获。

六马澈、負載均衡的使用場景

現(xiàn)在對網(wǎng)絡(luò)負載均衡的使用是隨著網(wǎng)站規(guī)模的提升根據(jù)不同的階段來使用不同的技術(shù):

  • 第一階段:利用Nginx或HAProxy進行單點的負載均衡,這一階段服務器規(guī)模剛脫離開單服務器弄息、單數(shù)據(jù)庫的模式痊班,需要一定的負載均衡,但是仍然規(guī)模較小沒有專業(yè)的維護團隊來進行維護摹量,也沒有需要進行大規(guī)模的網(wǎng)站部署涤伐。這樣利用Nginx或HAproxy就是第一選擇,此時這些東西上手快缨称, 配置容易凝果,在七層之上利用HTTP協(xié)議就可以。這時是第一選擇睦尽。

  • 第二階段:隨著網(wǎng)絡(luò)服務進一步擴大器净,這時單點的Nginx已經(jīng)不能滿足,這時使用LVS或者商用Array就是首要選擇当凡,Nginx此時就作為LVS或者Array的節(jié)點來使用山害,具體LVS或Array的是選擇是根據(jù)公司規(guī)模和預算來選擇,Array的應用交付功能非常強大沿量,本人在某項目中使用過浪慌,性價比也遠高于F5,商用首選欧瘪!但是一般來說這階段相關(guān)人才跟不上業(yè)務的提升眷射,所以購買商業(yè)負載均衡已經(jīng)成為了必經(jīng)之路匙赞。

  • 第三階段:這時網(wǎng)絡(luò)服務已經(jīng)成為主流產(chǎn)品佛掖,此時隨著公司知名度也進一步擴展,相關(guān)人才的能力以及數(shù)量也隨之提升涌庭,這時無論從開發(fā)適合自身產(chǎn)品的定制芥被,以及降低成本來講開源的LVS,已經(jīng)成為首選坐榆,這時LVS會成為主流拴魄。

  • 最終形成比較理想的基本架構(gòu)為:Array/LVS — Nginx/Haproxy — Squid/Varnish — AppServer。

參考資源:https://mp.weixin.qq.com/s/GtZMJK261grlfx7yZiOMLQ
https://blog.csdn.net/qlj324513/article/details/81541282?utm_source=copy

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末席镀,一起剝皮案震驚了整個濱河市匹中,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌豪诲,老刑警劉巖顶捷,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異屎篱,居然都是意外死亡服赎,警方通過查閱死者的電腦和手機葵蒂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來重虑,“玉大人践付,你說我怎么就攤上這事∪崩鳎” “怎么了永高?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長提针。 經(jīng)常有香客問我乏梁,道長,這世上最難降的妖魔是什么关贵? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任遇骑,我火速辦了婚禮,結(jié)果婚禮上揖曾,老公的妹妹穿的比我還像新娘落萎。我一直安慰自己,他們只是感情好炭剪,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布练链。 她就那樣靜靜地躺著,像睡著了一般奴拦。 火紅的嫁衣襯著肌膚如雪媒鼓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天错妖,我揣著相機與錄音绿鸣,去河邊找鬼。 笑死暂氯,一個胖子當著我的面吹牛潮模,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播痴施,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼擎厢,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了辣吃?” 一聲冷哼從身側(cè)響起动遭,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎神得,沒想到半個月后厘惦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡循头,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年绵估,在試婚紗的時候發(fā)現(xiàn)自己被綠了炎疆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡国裳,死狀恐怖形入,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情缝左,我是刑警寧澤亿遂,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站渺杉,受9級特大地震影響蛇数,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜是越,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一耳舅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧倚评,春花似錦浦徊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至呢岗,卻和暖如春冕香,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背后豫。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工悉尾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人硬贯。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓焕襟,卻偏偏與公主長得像,于是被迫代替她去往敵國和親饭豹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容