負載均衡總結 四層負載均衡和七層負載均衡的區別

2022-01-16 08:35:15 字數 4658 閱讀 8258

一、四層負載和七層負載的對比

在osi七層模型的第4層工作,即tcp層,其不會理解上層的協議如 http/ftp等.

由上圖,在四層負載裝置中,把client傳送的報文目標位址(原來是負載均衡裝置的ip位址),根據均衡裝置設定的選擇web伺服器的規則選擇對應的web伺服器ip位址,這樣client就可以直接跟此伺服器建立tcp連線並傳送資料。

相同條件下對比四層負載比與七層負載,四層有更好的效能。

2. 七層負載均衡裝置:

也稱內容交換,也就是主要通過報文中的真正有意義的應用層內容,再加上負載均衡裝置設定的伺服器選擇方式,決定最終選擇的伺服器。

由上圖可知,其實七層負載均衡伺服器起了乙個**伺服器的作用,我們知道建立一次tcp連線要三次握手;而client要訪問webserver要先與七層負載裝置進行三次握手後建立tcp連線,把要訪問的報文資訊傳送給七層負載均衡;然後七層負載均衡再根據設定的均衡規則選擇特定的webserver,然後通過三次握手與此台webserver建立tcp連線,然後webserver把需要的資料傳送給七層負載均衡裝置,負載均衡裝置再把資料傳送給client;所以,七層負載均衡裝置起到了**伺服器的作用。

3. 七層的負責均衡的優點:

通過對http報頭的檢查,可以檢測出http400、500和600系列的錯誤資訊,因而能透明地將連線請求重新定向到另一台伺服器,避免應用層故障。

可以有效防止 syn flood攻擊,是**更安全

可根據流經的資料型別(如判斷資料報是影象檔案、壓縮檔案或多**檔案格式等),把資料流量引向相應內容的伺服器來處理,增加系統效能。

4. 七層負載均衡裝置的缺點:

因為七層負載均衡裝置其實是乙個**伺服器,受到其所支援的協議限制(http),這樣就限制了它應用的廣泛性,並且檢查http報頭會占用大量的系統資源,勢必會影響到系統的效能,在大量連線請求的情況下,負載均衡裝置自身容易成為網路整體效能的瓶頸。

二、負載均衡的演算法

輪循均衡(round robin):每一次來自網路的請求輪流分配給內部中的伺服器,從1至n然後重新開始。此種均衡演算法適合於伺服器組中的所有伺服器都有相同的軟硬體配置並且平均服務請求相對均衡的情況。

權重輪循均衡(weighted round robin):根據伺服器的不同處理能力,給每個伺服器分配不同的權值,使其能夠接受相應權值數的服務請求。例如:伺服器a的權值被設計成1,b的權值是 3,c的權值是6,則伺服器a、b、c將分別接受到10%、30%、60%的服務請求。此種均衡演算法能確保高效能的伺服器得到更多的使用率,避免低效能的伺服器負載過重。

隨機均衡(random):把來自網路的請求隨機分配給內部中的多個伺服器。

權重隨機均衡(weighted random):此種均衡演算法類似於權重輪循演算法,不過在處理請求分擔時是個隨機選擇的過程。

響應速度均衡(response time):負載均衡裝置對內部各伺服器發出乙個探測請求(例如ping),然後根據內部中各伺服器對探測請求的最快響應時間來決定哪一台伺服器來響應客戶端的服務請求。此種均衡演算法能較好的反映伺服器的當前執行狀態,但這最快響應時間僅僅指的是負載均衡裝置與伺服器間的最快響應時間,而不是客戶端與伺服器間的最快響應時間。

最少連線數均衡(least connection):客戶端的每一次請求服務在伺服器停留的時間可能會有較大的差異,隨著工作時間加長,如果採用簡單的輪循或隨機均衡演算法,每一台伺服器上的連線程序可能會產生極大的不同,並沒有達到真正的負載均衡。最少連線數均衡演算法對內部中需負載的每一台伺服器都有乙個資料記錄,記錄當前該伺服器正在處理的連線數量,當有新的服務連線請求時,將把當前請求分配給連線數最少的伺服器,使均衡更加符合實際情況,負載更加均衡。此種均衡演算法適合長時處理的請求服務,如ftp。

處理能力均衡:此種均衡演算法將把服務請求分配給內部中處理負荷(根據伺服器cpu型號、cpu數量、記憶體大小及當前連線數等換算而成)最輕的伺服器,由於考慮到了內部伺服器的處理能力及當前網路執行狀況,所以此種均衡演算法相對來說更加精確,尤其適合運用到第七層(應用層)負載均衡的情況下。

dns響應均衡(flash dns):在internet上,無論是http、ftp或是其它的服務請求,客戶端一般都是通過網域名稱解析來找到伺服器確切的ip位址的。在此均衡演算法下,分處在不同地理位置的負載均衡裝置收到同乙個客戶端的網域名稱解析請求,並在同一時間內把此網域名稱解析成各自相對應伺服器的ip位址(即與此負載均衡裝置在同一位地理位置的伺服器的ip位址)並返回給客戶端,則客戶端將以最先收到的網域名稱解析ip位址來繼續請求服務,而忽略其它的ip位址響應。在種均衡策略適合應用在全域性負載均衡的情況下,對本地負載均衡是沒有意義的。

儘管有多種的負載均衡演算法可以較好的把資料流量分配給伺服器去負載,但如果負載均衡策略沒有對網路系統狀況的檢測方式和能力,一旦在某台伺服器或某段負載均衡裝置與伺服器網路間出現故障的情況下,負載均衡裝置依然把一部分資料流量引向那台伺服器,這勢必造成大量的服務請求被丟失,達不到不間斷可用性的要求。所以良好的負載均衡策略應有對網路故障、伺服器系統故障、應用服務故障的檢測方式和能力

ping偵測:通過ping的方式檢測伺服器及網路系統狀況,此種方式簡單快速,但只能大致檢測出網路及伺服器上的作業系統是否正常,對伺服器上的應用服務檢測就無能為力了。

tcp open偵測:每個服務都會開放某個通過tcp連線,檢測伺服器上某個tcp埠(如telnet的23口,http的80口等)是否開放來判斷服務是否正常。

http url偵測:比如向http伺服器發出乙個對main.html檔案的訪問請求,如果收到錯誤資訊,則認為伺服器出現故障。

負載均衡策略的優劣除受上面所講的兩個因素影響外,在有些應用情況下,我們需要將來自同一客戶端的所有請求都分配給同一臺伺服器去負擔,例如伺服器將客戶端註冊、購物等服務請求資訊儲存的本地資料庫的情況下,把客戶端的子請求分配給同一臺伺服器來處理就顯的至關重要了。有兩種方式可以解決此問題,一是根據ip位址把來自同一客戶端的多次請求分配給同一臺伺服器處理,客戶端ip位址與伺服器的對應資訊是儲存在負載均衡裝置上的;二是在客戶端瀏覽器 cookie內做獨一無二的標識來把多次請求分配給同一臺伺服器處理,適合通過**伺服器上網的客戶端。

還有一種路徑外返回模式(out of path return),當客戶端連線請求傳送給負載均衡裝置的時候,中心負載均衡裝置將請求引向某個伺服器,伺服器的回應請求不再返回給中心負載均衡裝置,即繞過流量分配器,直接返回給客戶端,因此中心負載均衡裝置只負責接受並**請求,其網路負擔就減少了很多,並且給客戶端提供了更快的響應時間。此種模式一般用於http伺服器群,在各伺服器上要安裝一塊虛擬網路介面卡,並將其ip位址設為伺服器群的vip,這樣才能在伺服器直接回應客戶端請求時順利的達成三次握手

三、負載均衡的實施要素

針對當前及將來的應用需求,分析網路瓶頸的不同所在,我們就需要確立是採用哪一類的負載均衡技術,採用什麼樣的均衡策略,在可用性、相容性、安全性等等方面要滿足多大的需求,如此等等。下面這幾項都是我們在引入均衡方案時可能要考慮的問題:

效能:效能是我們在引入均衡方案時需要重點考慮的問題,但也是乙個最難把握的問題。衡量效能時可將每秒鐘通過網路的資料報數目做為乙個引數,另乙個引數是均衡方案中伺服器群所能處理的最大併發連線數目,但是,假設乙個均衡系統能處理百萬計的併發連線數,可是卻只能以每秒2個包的速率**,這顯然是沒有任何作用的。效能的優劣與負載均衡裝置的處理能力、採用的均衡策略息息相關,並且有兩點需要注意:一、均衡方案對伺服器群整體的效能,這是響應客戶端連線請求速度的關鍵;二、負載均衡裝置自身的效能,避免有大量連線請求時自身效能不足而成為服務瓶頸。有時我們也可以考慮採用混合型負載均衡策略來提公升伺服器群的總體效能,如dns負載均衡與nat負載均衡相結合。另外,針對有大量靜態文件請求的站點,也可以考慮採用快取記憶體技術,相對來說更節省費用,更能提高響應效能;對有大量ssl/xml內容傳輸的站點,更應考慮採用ssl/xml加速技術。比如通過cdn網路等方式實現。

可擴充套件性:it技術日新月異,一年以前最新的產品,現在或許已是網路中效能最低的產品;業務量的急速上公升,一年前的網路,現在需要新一輪的擴充套件。合適的均衡解決方案應能滿足這些需求,能均衡不同作業系統和硬體平台之間的負載,能均衡http、郵件、新聞、**、資料庫、防火牆和 cache等不同伺服器的負載,並且能以對客戶端完全透明的方式動態增加或刪除某些資源。

靈活性:均衡解決方案應能靈活地提供不同的應用需求,滿足應用需求的不斷變化。在不同的伺服器群有不同的應用需求時,應有多樣的均衡策略提供更廣泛的選擇。

可靠性:在對服務質量要求較高的站點,負載均衡解決方案應能為伺服器群提供完全的容錯性和高可用性。但在負載均衡裝置自身出現故障時,應該有良好的冗餘解決方案,提高可靠性。使用冗餘時,處於同乙個冗餘單元的多個負載均衡裝置必須具有有效的方式以便互相進行監控,保護系統盡可能地避免遭受到重大故障的損失。

四、主流伺服器

1.jexus /iis 反向** 實現的都是七層負載均衡

2.nginx 是七層負載均衡

5.windows下負載均衡方案,windows平台分布式架構實踐 - 負載均衡(

microsoft 網路負載均衡)

6.haproxy 目前了解看是一種七層負載模式; haproxy的三種不同型別配置方案 裡面有提到一些 四層和七層的方案

參考這裡 及 這裡

四層負載均衡和七層負載均衡

第一,技術原理上的區別。所謂四層負載均衡,也就是主要通過報文中的目標位址和埠,再加上負載均衡裝置設定的伺服器選擇方式,決定最終選擇的內部伺服器。以常見的 tcp為例,負載均衡裝置 在接收到第乙個來自客戶端的 syn請求時 即通過上述方式選擇乙個最佳的伺服器,並對報文中目標 ip位址進行修改 改為後端...

四層負載均衡與七層負載均衡

1 四層負載均衡與七層負載均衡區別 個人理解 網路七層協議包括,應用層 第七層 表示層,會話層,傳輸成 第四層 網路層,資料鏈路層,物理層。所謂的七層和四層負載均衡就是指基於哪一層做的負載均衡。nginx反向 就是一種七層負載均衡,可以通過使用者的請求url來進行劃分 lvs就屬於四層負載均衡,是基...

四層負載均衡與七層負載均衡

四層負載均衡與七層負載均衡 負載均衡的分層是針對osi網路模型來說的,負載均衡模型也不僅僅只有四層和七層的。下面先給出osi網路模型架構 根據上述模型,可以快速了解負載均衡的分層 二層負載均衡 基於虛擬mac與真實mac的位址互聯。三層負載均衡 基於虛擬ip與真實ip的位址互聯。四層負載均衡 基於三...