如何分清負載均衡四、七層應用場景需求
在網絡優化的主流設備中,負載均衡常被稱為是"四七層交換機",擔當著重要使命。盡管,負載均衡設備對于很多企業IT管理人員來說已經非常熟悉,但是在具體使用過程中,例如針對四層和七層應用等技術疑問,依然會誤+導部分用戶并產生應用誤區。
那么,四層和七層兩者到底區別在哪里?在應用中如何讓負載均衡設備更好地滿足應用場景的需求呢?對此,太一星晨給予了詳細解讀。
第一.技術原理上的區別。
四層負載均衡,也就是主要通過報文中的目標地址和端口,再加上負載均衡設備設置的服務器選擇方式,決定最終選擇的內部服務器。
以常見的TCP為例,負載均衡設備在接收到第一個來自客戶端的SYN 請求時,即通過上述方式選擇一個最佳的服務器,并對報文中目標IP地址改為后端服務器IP,直接轉發給該服務器。TCP的連接建立,即三次握手是客戶端和服務器直接建立的,負載均衡設備只是起到一個類似路由器的轉發動作。
七層負載均衡:也稱為“內容交換”,主要通過報文中真正有意義的應用層內容,再加上負載均衡設備設置的服務器選擇方式,決定最終選擇的內部服務器。
以常見的HTTP為例,負載均衡設備要根據真正的應用層內容再選擇服務器,必須先代理實際服務器和客戶端建立連接(三次握手)后,才可能接受到客戶端發送的真正應用層內容的報文,然后再根據該報文中的特定字段,加上負載均衡設備設置的服務器選擇方式,決定最終選擇的內部服務器。
在這種情況下,負載類似于一個代理服務器與前端的客戶端以及后端的服務器會分別建立TCP連接。所以,從技術原理上來看,七層負載均衡明顯的對負載均衡設備的要求更高,設備性能消耗也更大。
第二.應用場景的需求。
七層應用負載的優勢是使整個網絡更"智能"。例如訪問一個網站的用戶流量,可以通過七層的方式,將對圖片類的請求轉發到特定的圖片服務器并可以使用緩存技術;將對文字類的請求轉發到特定的文字服務器并可以使用壓縮技術。
在技術原理上,這種方式可以對客戶端的請求和服務器的響應進行任意意義上的修改,極大提升了應用系統在網絡層的靈活性。很多在后臺,例如Nginx或者Apache上部署的功能都前移到負載均衡設備上。
對于網絡中最常見的SYN Flood攻擊,七層負載則提供了更好的安全性:
1.四層模式下:這些SYN攻擊都會被轉發到后端的服務器上。
2.七層模式下:這些SYN攻擊自然在負載均衡設備上就截止,不會影響后臺服務器的正常運營。
另外負載均衡設備可以在七層層面設定多種策略,過濾特定報文,例如SQL Injection等應用層面的特定攻擊手段,從應用層面進一步提高系統整體安全。
現在的7層負載均衡,主要還是著重于應用HTTP協議,所以其應用范圍主要是眾多的網站或者各種基于B/S開發的應用系統。 4層負載均衡則對應其他TCP/UDP應用,經常用于C/S開發的系統。
四層負載工作模式簡單,負載性能高,后臺服務器都必須承載相同的業務,
七層負載工作模式復雜,性能消耗高,但帶來了更好的靈活度,更有效的利用資源,加速對資源的使用。
那么,對于很多用戶關心的鏈路負載是在第幾層呢?通過上面的分析答案顯然已經出來了——鏈路當然是工作在四層模式以下啦!