雲計算

負載均衡4層和7層區別

四層

客戶端與web服務器只建立一次TCP連接。四層的負載均衡設備, 只是基於ip和端口,然後結合分配方式進行分配。只是對報文中目 標IP地址進行修改(改為後端服務器IP),然後直接轉發給該服務 器,返回的結果直接返回給客戶端,不經過負載均衡設備,四層的負載均衡設備,只是起到一個類似路由器的轉發動作。

七層

客戶端與負載均衡設備(代理服務器)建立一次TCP連接,負載均衡設 備(代理服務器)和web服務器建立一次TCP連接,總共兩次TCP連 接,而七層的負載均衡設備起到的是反向代理的作用,根據報文中 的內容,和事先的分配方式,再決定分配到哪個web服務器。來回 都經過負載均衡設備(代理服務器)

 註釋:七層對設備要求高,但是靈活性和擴展性比較高,也比較安全

 

① 所謂四層就是基於IP+端口的負載均衡;七層就是基於URL等應用層信息的負載均衡;同理,還有基於MAC地址的二層負載均衡和基於IP地址的三層負載均衡。 換句換說,二層負載均衡會通過一個虛擬MAC地址接收請求,然後再分配到真實的MAC地址;三層負載均衡會通過一個虛擬IP地址接收請求,然後再分配到真實的IP地址;四層通過虛擬IP+端口接收請求,然後再分配到真實的服務器;七層通過虛擬的URL或主機名接收請求,然後再分配到真實的服務器。

 

② 所謂的四到七層負載均衡,就是在對後臺的服務器進行負載均衡時,依據四層的信息或七層的信息來決定怎麼樣轉發流量。 比如四層的負載均衡,就是通過發佈三層的IP地址(VIP),然後加四層的端口號,來決定哪些流量需要做負載均衡,對需要處理的流量進行NAT處理,轉發至後臺服務器,並記錄下這個TCP或者UDP的流量是由哪臺服務器處理的,後續這個連接的所有流量都同樣轉發到同一臺服務器處理。七層的負載均衡,就是在四層的基礎上(沒有四層是絕對不可能有七層的),再考慮應用層的特徵,比如同一個Web服務器的負載均衡,除了根據VIP加80端口辨別是否需要處理的流量,還可根據七層的URL、瀏覽器類別、語言來決定是否要進行負載均衡。舉個例子,如果你的Web服務器分成兩組,一組是中文語言的,一組是英文語言的,那麼七層負載均衡就可以當用戶來訪問你的域名時,自動辨別用戶語言,然後選擇對應的語言服務器組進行負載均衡處理。

 

③ 負載均衡器通常稱為四層交換機或七層交換機。四層交換機主要分析IP層及TCP/UDP層,實現四層流量負載均衡。七層交換機除了支持四層負載均衡以外,還有分析應用層的信息,如HTTP協議URI或Cookie信息。

 

1、負載均衡分為L4 switch(四層交換),即在OSI第4層工作,就是TCP層啦。此種Load Balance不理解應用協議(如HTTP/FTP/MySQL等等)。例子:LVS,F5。

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

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

 

通俗的說:四層負載均衡就像銀行的自助排號機,每一個達到銀行的客戶根據排號機的順序,選擇對應的窗口接受服務;而七層負載均衡像銀行大堂經理,先確認客戶需要辦理的業務,再安排排號。這樣辦理理財、存取款等業務的客戶,會根據銀行內部資源得到統一協調處理,加快客戶業務辦理流程。

Leave a Reply

Your email address will not be published. Required fields are marked *