linux負載均衡總結性說明(四層負載/七層負載)

1、前言

在常規的運維工做中,常常會用到負載均衡服務器。負載均衡分爲四層負載均衡和七層負載均衡,那麼這二者有什麼不一樣?前端

2、什麼是負載均衡

1)負載均衡創建在現有的網絡結構之上,它提供了一種廉價有效透明的方法擴展網絡設備和服務器的寬帶,增長吞吐量,增強網絡的處理能力,提升的網絡的靈活性和可用性。負載均衡有兩方面的含義:首先,大量的併發訪問或者數據流量分擔到多臺節點設備上分別處理,減小用戶訪問等待時間;其次系統處理能力大幅度提高,增長用戶的好感度nginx

2)簡單來講就是:其一是將大量的併發處理轉發給後端的多個節點處理,減小工做響應時間;其二將單個繁重的工做轉發給後端的多個節點處理,處理完在返回給負載均衡中心,在返回給用戶。目前負載均衡技術大多數是用於提升諸如在web服務器,ftp服務器和其餘關鍵任務服務上的Internet服務器程序的可用性和伸縮性。web

3、負載均衡的分類

1)二層負載均衡(mac)

根據OSI模型分爲二層負載,通常是用虛擬mac地址方式,外部對虛擬mac地址請求,負載均衡接收後分配後端實際的mac地址響應正則表達式

2)三層負載均衡(ip)

通常是採用虛擬ip地址的方式,外部對虛擬的ip地址請求,負載均衡接收後分配後端實際的ip地址響應後端

3)四層負載均衡(tcp)

在三層負載均衡的基礎上用ip+port接收請求,在轉發到對應的服務器緩存

4)七層負載均衡(http)

根據虛擬的URL或者ip,主機接收請求,在轉發到響應的處理服務器服務器

5)概述

咱們在運維中最多見的是四層負載均衡和七層負載均衡,這裏重點說着兩種負載均衡網絡

1)四層負載均衡就是基於IP+端口的負載均衡;在三層負載均衡的基礎上,經過發佈三層的ip地址(VIP),而後加四層的端口號,來決定那些流量須要作負載,對須要處理的流量進行nat處理,轉發到後端的服務器,並記錄這個tcp或udp流量由哪臺服務器處理的,後續這個鏈接的全部流量都一樣轉發到同一臺服務器處理。併發

對應的負載均衡器叫四層交換機,主要分析ip層以及TCP/UDP層,實現四層負載均衡。這種負載均衡不理解應用協議(如HTTP/FTP/MySQL等)。負載均衡

實現四層負載均衡器的軟件有:

F5:硬件負載均衡器,功能很好,可是成本很高

lvs:重量級的四層負載均衡

LVS 不像 HAProxy 等七層軟負載面向的是 HTTP 包,因此七層負載能夠作的 URL 解析等工做,LVS 沒法完成。

LVS 是四層負載均衡,也就是說創建在 OSI 模型的第四層——傳輸層之上,傳輸層上有咱們熟悉的 TCP/UDP,LVS 支持 TCP/UDP 的負載均衡。由於 LVS 是四層負載均衡,所以它相對於其它高層負載均衡的解決辦法,好比 DNS 域名輪流解析、應用層負載的調度、客戶端的調度等,它的效率是很是高的

nginx:輕量級的四層負載軟件,帶緩存功能,正則表達式比較靈活

haproxy:模擬四層轉發,比較靈活

2)七層負載均衡是基於虛擬的URL或者主機ip的負載均衡器;在四層負載均衡的基礎上(沒有四層是絕對不可能有七層的)

對應的負載均衡器稱爲7層交換機,除了支持四層負載均衡之外,還能分析應用層的信息,如HTTP協議URL或Cookie信息,實現七層負載均衡,此種負載均衡器能理解應用協議。

實現七層負載均衡的軟件有:

haproxy:天生的負載均衡技能,全面支持七層代理,會話保持,標記,路徑轉移;

nginx:nginx的stream模塊支持七層負載均衡,使用相似http模塊,後面會專有一篇文章進行解讀

3、二者之間的區別

1)從技術理論上分析

        所謂的四層負載均衡,也就是主要經過報文中的目標地址和端口,在加上負載均衡設備的服務選擇方式,絕對最終選擇的內部服務器 。

       以常見的TCP爲例子,負載均衡設備在接收到一個來自客戶的SYN請求時,經過報文中的目標ip和端口選擇一個最佳的服務器,並對報文中的目標ip地址進行更改(改成後端服務器的ip),直接轉發給該服務器。tcp的鏈接創建,即三次握手是客戶端和服務端直接創建的,負載均衡設備只是起到一個相似路由器的轉發動做。在某些部署的狀況下,爲保證服務器回包能夠正確返回給負載均衡器,在轉發報文的同時還會將報文中的源地址進行修改

        所謂七層負載均衡,也稱爲內容交換,也就是主要經過報文中的真正有意義的應用層內容,在加上負載均衡設備設置的服務器選擇方式,決定最終選擇的服務器

        以常見的TCP爲例,負載均衡設備若是要根據真正的應用層內容在選擇服務器,只能先代理最終的服務器和客戶端創建鏈接(三次握手後),才能接受到客戶端發送的真正應用層內容的報文,而後在根據報文中的特定字段,更相似於一個代理服務器。負載均衡和前端的客戶端以及後端的服務器會分別創建TCP鏈接。因此從這個技術原理上來看,七層負載均衡明顯的對負載均衡設備的要求更高,處理七層的能力也必然會低於四層模式的部署方式。

2)https://cloud.tencent.com/developer/article/1026930

相關文章
相關標籤/搜索