大家好,我是樹義。
學過計算機網絡的同學都知道,我們工作、生活所使用的互聯網,其實是通過一個網絡模型來進行數據傳輸的,這個網絡模型叫做:OSI 模型(Open Systems Interconnection model)。
而我們常說的四層負載均衡與七層負載均衡,指的就是在這個 OSI 模型的哪一層進行請求轉發。因此要弄懂這個問題,我么你需要先弄懂 OSI 模型。
OSI 模型計算機網絡 OSI 模型(Open Systems Interconnection model)是一種概念模型,它將電信或計算系統通信功能標準化,而不考慮其內部結構或技術。OSI 模型可以分為七層,如下圖所示。
OSI 七層模型
通過 OSI 七層模型,我們就可以將數據從計算機的軟件,通過網線發送出去,最終被另一臺電腦接收。
四層負載均衡四層負載均衡,指的是工作在 OSI 的第四層,即傳輸層,其通過 IP + 端口的方式進行路由轉發。其具體實現方式為:通過報文中的 IP 地址和端口,再加上負載均衡設備所采用的負載均衡算法,最終確定選擇后端哪臺下游服務器。
以 TCP 為例,客戶端向負載均衡發送 SYN 請求建立第一次連接。通過配置的負載均衡算法選擇一臺后端服務器,并且將報文中的 IP 地址信息修改為后臺服務器的 IP 地址信息,因此 TCP 三次握手連接是與后端服務器直接建立起來的。
常見的四層負載均衡設備有:F5、LVS 等。
七層負載均衡七層負載均衡,指的是工作在 OSI 的第七層,即應用層,其一般是基于請求 URL 地址的方式進行代理轉發。七層服務均衡在應用層選擇服務器,只能先與負載均衡設備進行 TCP 連接,然后負載均衡設備再與后端服務器建立另外一條 TCP 連接通道。因此,七層設備在網絡性能損耗會更多一些。
常見的七層負載均衡設備有:Nginx 等。
總結對比一下,它們之間主要的異同:
工作層級不同。四層負載均衡工作在傳輸層,七層負載均衡工作在應用層。
建立連接不同。四層負載均衡,客戶端直接與后端服務器建立連接,七層負載均衡則作為中間用戶與上下游建立連接。
(資料圖片)
效率不同。四層負載均衡相對效率較高,七層負載均衡效率較低。
靈活性方面。七層負載均衡可以做更多的改造,例如可以對流量進行清洗,避免 DDOS 攻擊。而四層負載均衡,由于是客戶端與后端服務器直連,負載均衡設備無法介入。
X 關閉
X 關閉