技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機(jī)純凈版,64位旗艦版,綠色軟件,免費(fèi)軟件下載基地!

當(dāng)前位置:主頁(yè) > 教程 > 服務(wù)器類 >

四層和七層負(fù)載均衡的區(qū)別

來源:技術(shù)員聯(lián)盟┆發(fā)布時(shí)間:2018-11-09 18:13┆點(diǎn)擊:

  簡(jiǎn)單理解四層和七層負(fù)載均衡:

 ?、? 所謂四層就是基于IP+端口的負(fù)載均衡;七層就是基于URL等應(yīng)用層信息的負(fù)載均衡;同理,還有基于MAC地址的二層負(fù)載均衡和基于IP地址的三層負(fù)載均衡。 換句換說,二層負(fù)載均衡會(huì)通過一個(gè)虛擬MAC地址接收請(qǐng)求,然后再分配到真實(shí)的MAC地址;三層負(fù)載均衡會(huì)通過一個(gè)虛擬IP地址接收請(qǐng)求,然后再分配到真實(shí)的IP地址;四層通過虛擬IP+端口接收請(qǐng)求,然后再分配到真實(shí)的服務(wù)器;七層通過虛擬的URL或主機(jī)名接收請(qǐng)求,然后再分配到真實(shí)的服務(wù)器。

 ?、?所謂的四到七層負(fù)載均衡,就是在對(duì)后臺(tái)的服務(wù)器進(jìn)行負(fù)載均衡時(shí),依據(jù)四層的信息或七層的信息來決定怎么樣轉(zhuǎn)發(fā)流量。 比如四層的負(fù)載均衡,就是通過發(fā)布三層的IP地址(VIP),然后加四層的端口號(hào),來決定哪些流量需要做負(fù)載均衡,對(duì)需要處理的流量進(jìn)行NAT處理,轉(zhuǎn)發(fā)至后臺(tái)服務(wù)器,并記錄下這個(gè)TCP或者UDP的流量是由哪臺(tái)服務(wù)器處理的,后續(xù)這個(gè)連接的所有流量都同樣轉(zhuǎn)發(fā)到同一臺(tái)服務(wù)器處理。七層的負(fù)載均衡,就是在四層的基礎(chǔ)上(沒有四層是絕對(duì)不可能有七層的),再考慮應(yīng)用層的特征,比如同一個(gè)Web服務(wù)器的負(fù)載均衡,除了根據(jù)VIP加80端口辨別是否需要處理的流量,還可根據(jù)七層的URL、瀏覽器類別、語言來決定是否要進(jìn)行負(fù)載均衡。舉個(gè)例子,如果你的Web服務(wù)器分成兩組,一組是中文語言的,一組是英文語言的,那么七層負(fù)載均衡就可以當(dāng)用戶來訪問你的域名時(shí),自動(dòng)辨別用戶語言,然后選擇對(duì)應(yīng)的語言服務(wù)器組進(jìn)行負(fù)載均衡處理。

 ?、? 負(fù)載均衡器通常稱為四層交換機(jī)或七層交換機(jī)。四層交換機(jī)主要分析IP層及TCP/UDP層,實(shí)現(xiàn)四層流量負(fù)載均衡。七層交換機(jī)除了支持四層負(fù)載均衡以外,還有分析應(yīng)用層的信息,如HTTP協(xié)議URI或Cookie信息。

  1、負(fù)載均衡分為L(zhǎng)4 switch(四層交換),即在OSI第4層工作,就是TCP層啦。此種Load Balance不理解應(yīng)用協(xié)議(如HTTP/FTP/MySQL等等)。例子:LVS,F(xiàn)5。

  2、另一種叫做L7 switch(七層交換),OSI的最高層,應(yīng)用層。此時(shí),該Load Balancer能理解應(yīng)用協(xié)議。例子: haproxy,MySQL Proxy。

  注意:上面的很多Load Balancer既可以做四層交換,也可以做七層交換。

  (二)

  負(fù)載均衡設(shè)備也常被稱為"四到七層交換機(jī)",那么四層和七層兩者到底區(qū)別在哪里?

  第一,技術(shù)原理上的區(qū)別。

  所謂四層負(fù)載均衡,也就是主要通過報(bào)文中的目標(biāo)地址和端口,再加上負(fù)載均衡設(shè)備設(shè)置的服務(wù)器選擇方式,決定最終選擇的內(nèi)部服務(wù)器。

  以常見的TCP為例,負(fù)載均衡設(shè)備在接收到第一個(gè)來自客戶端的SYN 請(qǐng)求時(shí),即通過上述方式選擇一個(gè)最佳的服務(wù)器,并對(duì)報(bào)文中目標(biāo)IP地址進(jìn)行修改(改為后端服務(wù)器IP),直接轉(zhuǎn)發(fā)給該服務(wù)器。TCP的連接建立,即三次握手是客戶端和服務(wù)器直接建立的,負(fù)載均衡設(shè)備只是起到一個(gè)類似路由器的轉(zhuǎn)發(fā)動(dòng)作。在某些部署情況下,為保證服務(wù)器回包可以正確返回給負(fù)載均衡設(shè)備,在轉(zhuǎn)發(fā)報(bào)文的同時(shí)可能還會(huì)對(duì)報(bào)文原來的源地址進(jìn)行修改。

四層和七層負(fù)載均衡的區(qū)別 三聯(lián)

  所謂七層負(fù)載均衡,也稱為“內(nèi)容交換”,也就是主要通過報(bào)文中的真正有意義的應(yīng)用層內(nèi)容,再加上負(fù)載均衡設(shè)備設(shè)置的服務(wù)器選擇方式,決定最終選擇的內(nèi)部服務(wù)器。

  以常見的TCP為例,負(fù)載均衡設(shè)備如果要根據(jù)真正的應(yīng)用層內(nèi)容再選擇服務(wù)器,只能先代理最終的服務(wù)器和客戶端建立連接(三次握手)后,才可能接受到客戶端發(fā)送的真正應(yīng)用層內(nèi)容的報(bào)文,然后再根據(jù)該報(bào)文中的特定字段,再加上負(fù)載均衡設(shè)備設(shè)置的服務(wù)器選擇方式,決定最終選擇的內(nèi)部服務(wù)器。負(fù)載均衡設(shè)備在這種情況下,更類似于一個(gè)代理服務(wù)器。負(fù)載均衡和前端的客戶端以及后端的服務(wù)器會(huì)分別建立TCP連接。所以從這個(gè)技術(shù)原理上來看,七層負(fù)載均衡明顯的對(duì)負(fù)載均衡設(shè)備的要求更高,處理七層的能力也必然會(huì)低于四層模式的部署方式。

  第二,應(yīng)用場(chǎng)景的需求。

  七層應(yīng)用負(fù)載的好處,是使得整個(gè)網(wǎng)絡(luò)更"智能化"。例如訪問一個(gè)網(wǎng)站的用戶流量,可以通過七層的方式,將對(duì)圖片類的請(qǐng)求轉(zhuǎn)發(fā)到特定的圖片服務(wù)器并可以使用緩存技術(shù);將對(duì)文字類的請(qǐng)求可以轉(zhuǎn)發(fā)到特定的文字服務(wù)器并可以使用壓縮技術(shù)。當(dāng)然這只是七層應(yīng)用的一個(gè)小案例,從技術(shù)原理上,這種方式可以對(duì)客戶端的請(qǐng)求和服務(wù)器的響應(yīng)進(jìn)行任意意義上的修改,極大的提升了應(yīng)用系統(tǒng)在網(wǎng)絡(luò)層的靈活性。很多在后臺(tái),例如Nginx或者Apache上部署的功能可以前移到負(fù)載均衡設(shè)備上,例如客戶請(qǐng)求中的Header重寫,服務(wù)器響應(yīng)中的關(guān)鍵字過濾或者內(nèi)容插入等功能。