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

關(guān)于負(fù)載均衡,經(jīng)常聽(tīng)到四層負(fù)載均衡和七層負(fù)載均衡的說(shuō)法,他們之間有什么關(guān)系和區(qū)別呢,今天就簡(jiǎn)單總結(jié)概括下。

概述

用一句話來(lái)說(shuō),四層負(fù)載均衡就是工作在計(jì)算機(jī)網(wǎng)絡(luò)OSI七層分層的第四層(傳輸層)的,七層負(fù)載軍和則是工作在第七層(應(yīng)用層)的

也就是說(shuō),四層負(fù)載均衡是基于IP+端口的負(fù)載均衡,七層負(fù)載均衡是基于URL等應(yīng)用層信息的負(fù)載均衡。

同理,還有基于MAC地址的二層負(fù)載均衡和基于IP地址的三層負(fù)載均衡。

  • 二層負(fù)載均衡(mac)
    一般是用虛擬mac地址方式,外部對(duì)虛擬MAC地址請(qǐng)求,負(fù)載均衡接收后分配后端實(shí)際的MAC地址響應(yīng)。
  • 三層負(fù)載均衡(ip)
    一般采用虛擬IP地址方式,外部對(duì)虛擬的ip地址請(qǐng)求,負(fù)載均衡接收后分配后端實(shí)際的IP地址響應(yīng)。
  • 四層負(fù)載均衡(tcp)
    虛擬ip+port接收請(qǐng)求,再轉(zhuǎn)發(fā)到對(duì)應(yīng)的真實(shí)機(jī)器。
  • 七層負(fù)載均衡(http)
    虛擬的url或主機(jī)名接收請(qǐng)求,再轉(zhuǎn)向相應(yīng)的處理服務(wù)器。

在實(shí)際應(yīng)用中,比較常見(jiàn)的就是四層負(fù)載及七層負(fù)載。這里也重點(diǎn)說(shuō)下這兩種負(fù)載。

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


具體區(qū)別

負(fù)載均衡器通常稱(chēng)為四層交換機(jī)七層交換機(jī)。那么四層和七層兩者到底區(qū)別在哪里?

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

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

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

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

2.應(yīng)用場(chǎng)景區(qū)別

??七層因?yàn)榭梢源砣我庑薷暮吞幚碛脩?hù)的請(qǐng)求,所以可以使整個(gè)應(yīng)用更加智能化和安全,代價(jià)就是設(shè)計(jì)和配置會(huì)更復(fù)雜。所以是否有必要使用七層負(fù)載均衡是一個(gè)需要權(quán)衡的問(wèn)題。

??現(xiàn)在的7層負(fù)載均衡,主要還是著重于應(yīng)用HTTP協(xié)議,所以其應(yīng)用范圍主要是眾多的網(wǎng)站或者內(nèi)部信息平臺(tái)等基于B/S開(kāi)發(fā)的系統(tǒng)。 4層負(fù)載均衡則對(duì)應(yīng)其他TCP應(yīng)用,例如基于C/S開(kāi)發(fā)的ERP等系統(tǒng)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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