四 負載均衡之IP分配

2021-06-22 21:14:39 字數 1221 閱讀 8813

首先讓我們來看看下面這張大家都非常熟悉的tcp/ip協議族的分層圖:

關於每層在網路資料報傳輸過程中所起到的作用不是本文的重點,本文主要是講解如何在網路層中使用ip來做伺服器集群的負載均衡,為什麼可以在這一層來做負載均衡。下面在來看ip協議的報頭格式:

內紅色框內的源位址和目的位址是ip負載均衡功能的關鍵所在,ip負載均衡又可以稱之為網路層負載均衡,其核心原理就是通過核心驅動更改ip的目的位址來完成資料負載均衡的,如下圖:

如上圖所示,使用者請求資料報(源位址為200.110.50.1)到達負載均衡伺服器114.100.20.200後,負載均衡伺服器在核心程序獲取網路資料報,根據一定的負載均衡演算法得到一台內部的真實伺服器192.168.1.1,然後將資料報的目的ip修改為192.168.1.1,此後資料報將會被發往192.168.1.1的伺服器上,伺服器處理完後,將向負載均衡伺服器返回相應的資料報,負載均衡伺服器在把源位址修改為114.100.20.200後將資料報傳輸給使用者瀏覽器。在這一整個過程中,資料報沒有通過使用者的應用程序,因此該負載均衡的效能是非常之高的。

根據以上的圖和上文的講解,大家可能會覺得這很容易實現,其實不然,在這裡需要處理關鍵的地方就是如何將集群內部伺服器處理完後的資料返回給負載均衡伺服器。因為,使用者請求的資料報到達負載均衡伺服器前的目的位址是114.100.20.200,源位址是200.110.50.1,通過負載均衡伺服器修改後的目的位址是192.168.1.1,源位址還是200.110.50.1,所以處理後返回的資料報目的位址將是200.110.50.1,源位址是192.168.1.1,最終返回的資料報要回到負載均衡伺服器就成了問題。解決的辦法大概有如下兩種:一、負載均衡伺服器使用雙網絡卡,乙個對內乙個對外,在修改請求資料報的目的ip的同時也修改源位址,將源位址設為自身的ip,即源位址轉換(snat),這樣內部集群伺服器響應會再回到負載均衡伺服器;二、將負載均衡伺服器作為真實物理伺服器集群的閘道器伺服器,這樣所有的響應都將通過負載均衡伺服器。

參考:[1] 《tcp/ip詳解,卷1:協議》

[2] 《大型**技術架構——核心原理與案例分析》

出處:

負載均衡之IP

首先讓我們來看看下面這張大家都非常熟悉的tcp ip協議族的分層圖 關於每層在網路資料報傳輸過程中所起到的作用不是本文的重點,本文主要是講解如何在網路層中使用ip來做伺服器集群的負載均衡,為什麼可以在這一層來做負載均衡。下面在來看ip協議的報頭格式 內紅色框內的源位址和目的位址是ip負載均衡功能的關...

Nginx之負載均衡 四

upstream server 負載均衡 upstream server 中文翻譯 上游伺服器,意思就是負載均衡伺服器設定,白話文表示 就是被nginx 最後真實訪問的伺服器 負載均衡演算法 配置多個上游伺服器 真實業務邏輯訪問的伺服器 的負載均衡機制 失敗重試機制 當上游伺服器 真實業務邏輯訪問的...

Nginx負載均衡四種分配策略

1 輪詢 預設 每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器宕機,能自動剔除掉。2 weight weight代表權重,預設為1,權重越高被分配的客戶端越多。指定輪詢機率,weight和訪問比率成正比,使用者後端伺服器效能不均的情況。例如 upstream myserver3 ip ...