負(fù)載均衡設(shè)備也常被稱為"四到七層交換機(jī)",那么四層和七層兩者到底區(qū)別在哪里?
第一,技術(shù)原理上的區(qū)別。
所謂四層負(fù)載均衡,也就是主要通過(guò)報(bào)文中的目標(biāo)地址和端口,再加上負(fù)載均衡設(shè)備設(shè)置的服務(wù)器選擇方式,決定最終選擇的內(nèi)部服務(wù)器。
以常見的TCP為例,負(fù)載均衡設(shè)備在接收到第一個(gè)來(lái)自客戶端的SYN 請(qǐng)求時(shí),即通過(guò)上述方式選擇一個(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)文原來(lái)的源地址進(jìn)行修改。
所謂七層負(fù)載均衡,也稱為“內(nèi)容交換”,也就是主要通過(guò)報(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ù)原理上來(lái)看,七層負(fù)載均衡明顯的對(duì)負(fù)載均衡設(shè)備的要求更高,處理七層的能力也必然會(huì)低于四層模式的部署方式。那么,為什么還需要七層負(fù)載均衡呢?
第二,應(yīng)用場(chǎng)景的需求。
七層應(yīng)用負(fù)載的好處,是使得整個(gè)網(wǎng)絡(luò)更"智能化", 參考我們之前的另外一篇專門針對(duì)HTTP應(yīng)用的優(yōu)化的介紹 ,就可以基本上了解這種方式的優(yōu)勢(shì)所在。例如訪問(wèn)一個(gè)網(wǎng)站的用戶流量,可以通過(guò)七層的方式,將對(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)鍵字過(guò)濾或者內(nèi)容插入等功能。
(責(zé)任編輯:VEVB)
新聞熱點(diǎn)
疑難解答
圖片精選