關於負載均衡的簡單調研

2021-10-08 20:12:49 字數 3035 閱讀 9061

負載均衡,英文名稱為load balance,意思是將負載(工作任務,訪問請求)進行平衡、分攤到多個操作單元(伺服器,元件)上進行執行。是解決高效能,單點故障(高可用),擴充套件性(水平伸縮)的終極解決方案。

常見的實現方式中,主要可以在應用層、傳輸層、網路層和資料傳輸層做文章。所以,工作在應用層的負載均衡,我們通常稱之為七層負載均衡、工作在傳輸層的我們稱之為四層負載均衡。

負載均衡分類:

負載均衡大致可以分為以下幾種,其中最常用的是四層和七層負載均衡:

二層負載均衡

負載均衡伺服器對外依然提供乙個vip(虛ip),集群中不同的機器採用相同ip位址,但是機器的mac位址不一樣。當負載均衡伺服器接受到請求之後,通過改寫報文的目標mac位址(定位網絡卡,硬體位址)的方式將請求**到目標機器實現負載均衡。

三層負載均衡

和二層負載均衡類似,負載均衡伺服器對外依然提供乙個vip(虛ip),但是集群中不同的機器採用不同的ip位址。當負載均衡伺服器接受到請求之後,根據不同的負載均衡演算法,通過ip將請求**至不同的真實伺服器。

四層負載均衡

四層負載均衡工作在osi模型的傳輸層,由於在傳輸層,只有tcp/udp協議,這兩種協議中除了包含源ip、目標ip以外,還包含源埠號及目的埠號。四層負載均衡伺服器在接受到客戶端請求後,以後通過修改資料報的位址資訊(ip+埠號)將流量**到應用伺服器。

七層負載均衡

七層負載均衡工作在osi模型的應用層,應用層協議較多,常用http、radius、dns等。七層負載就可以基於這些協議來負載。這些應用層協議中會包含很多有意義的內容。比如同乙個web伺服器的負載均衡,除了根據ip加埠進行負載外,還可根據七層的url、瀏覽器類別、語言來決定是否要進行負載均衡。

1.負載均衡演算法

負載均衡伺服器在決定將請求**到具體哪台真實伺服器的時候,是通過負載均衡演算法來實現的。負載均衡演算法,是乙個負載均衡伺服器的核心。

就像電影院門口的引導員一樣,他根據什麼把排隊人員分配到具體的入口呢?是哪個入口人少嗎?還是哪個入口速度最快?還是哪個入口最近呢?

負載均衡演算法可以分為兩類:靜態負載均衡演算法和動態負載均衡演算法。

1).靜態負載均衡演算法包括:輪詢,比率,優先權

• 輪詢(round robin):順序迴圈將請求一次順序迴圈地連線每個伺服器。當其中某個伺服器發生第二到第7 層的故障,big-ip 就把其從順序迴圈佇列中拿出,不參加下一次的輪詢,直到其恢復正常。

• 比率(ratio):給每個伺服器分配乙個加權值為比例,根椐這個比例,把使用者的請求分配到每個伺服器。當其中某個伺服器發生第二到第7 層的故障,big-ip 就把其從伺服器佇列中拿出,不參加下一次的使用者請求的分配, 直到其恢復正常。

• 優先權(priority):給所有伺服器分組,給每個組定義優先權,big-ip 使用者的請求,分配給優先順序最高的伺服器組(在同一組內,採用輪詢或比率演算法,分配使用者的請求);當最高優先順序中所有伺服器出現故障,big-ip 才將請求送給次優先順序的伺服器組。這種方式,實際為使用者提供一種熱備份的方式。

2).動態負載均衡演算法包括: 最少連線數,最快響應速度,觀察方法,**法,動態效能分配,動態伺服器補充,服務質量,服務型別,規則模式。

• 最少的連線方式(least connection):傳遞新的連線給那些進行最少連線處理的伺服器。當其中某個伺服器發生第二到第7 層的故障,big-ip 就把其從伺服器佇列中拿出,不參加下一次的使用者請求的分配, 直到其恢復正常。

• 最快模式(fastest):傳遞連線給那些響應最快的伺服器。當其中某個伺服器發生第二到第7 層的故障,big-ip 就把其從伺服器佇列中拿出,不參加下一次的使用者請求的分配,直到其恢復正常。

• 觀察模式(observed):連線數目和響應時間以這兩項的最佳平衡為依據為新的請求選擇伺服器。當其中某個伺服器發生第二到第7 層的故障,big-ip就把其從伺服器佇列中拿出,不參加下一次的使用者請求的分配,直到其恢復正常。

• **模式(predictive):big-ip利用收集到的伺服器當前的效能指標,進行**分析,選擇一台伺服器在下乙個時間片內,其效能將達到最佳的伺服器相應使用者的請求。(被big-ip 進行檢測)

• 動態效能分配(dynamic ratio-apm):big-ip 收集到的應用程式和應用伺服器的各項效能引數,動態調整流量分配。

• 動態伺服器補充(dynamic server act.):當主伺服器群中因故障導致數量減少時,動態地將備份伺服器補充至主伺服器群。

• 服務質量(qos):按不同的優先順序對資料流進行分配。

• 服務型別(tos):按不同的服務型別(在type of field中標識)負載均衡對資料流進行分配。

• 規則模式:針對不同的資料流設定導向規則,使用者可自行。

2.lvs負載均衡

lvs(linux virtual server)即linux虛擬伺服器,在linux核心中實現了基於ip的資料請求負載均衡排程方案。是一種計算機技術,用來在多個計算機(計算機集群)、網路連線、cpu、磁碟驅動器或其他資源中分配負載,以達到最優化資源使用、最大化吞吐率、最小化響應時間、同時避免過載的目的。

lvs負載均衡分類:

基於nat的lvs模式負載均衡:網路位址轉換模式,只能通過lvs負載均衡排程器進行使用者端到服務端的資料傳輸;

基於tun的lvs負載均衡:在nat的基礎上引入了ip隧道技術和將服務端接入外網,使得資料的回傳不再受限於lvs負載均衡排程器;

基於dr的lvs負載均衡:在tun的基礎上,將排程器與服務端構建在同一片區域網,共享乙個vip。以直接路由方式代替ip隧道技術降低服務端的損耗。

gslb 是英文gobal server load balance的縮寫,意思是全域性負載均衡。 作用:實現在廣域網(包括網際網路)上不同地域的伺服器間的流量調配,保證使用最佳的伺服器服務離自己最近的客戶,從而確保訪問質量。大致分為基於dns實現、基於重定向實現、基於路由協議實現三種形式。因此gslb是對伺服器和鏈路進行綜合判斷來決定由哪個地點的伺服器來提供服務,實現異地伺服器群服務質量的保證。

ns(name server)記錄是網域名稱伺服器記錄,用來指定該網域名稱由哪個dns伺服器來進行解析。

簡單的負載均衡

簡單的負載均衡 實驗目的 通過負載均衡實現,通過訪問nginx伺服器,檢視apache頁面 實驗裝置 四台centos7伺服器 實驗規劃 配置兩台apache伺服器,一台nfs mysql伺服器,一台nginx伺服器 通過nfs服務將兩台apache實現共享,nginx伺服器上進行輪詢ip的方式達到...

關於負載均衡

1.什麼是負載均衡?負載均衡,其含義就是指將負載 工作任務 進行平衡 分攤到多個操作單元上進行執行,例如ftp伺服器 web伺服器 企業核心應用伺服器和其它主要任務伺服器等,從而協同完成工作任務。2.為什麼需要負載均衡?在生活中,有很多擁擠的地方,比如說火車站,電影院,銀行等。無論是買票,還是排隊入...

簡單的Nginx負載均衡

本人是在centos6.4上做的實驗,centos7上還沒有試過。需要先搭建 lnmp環境 需要三颱虛擬機器做實驗。配置網域名稱 在 root 使用者下輸入 lnmp vhost add 則會顯示出如圖所示的內容 rule 規則 log 日誌 第三個是 mysql 根據需求選擇自己所需要的 成功後會...