天天看點

負載均衡 | 學習筆記負載均衡

開發者學堂課程【高性能叢集負載第二課時:負載均衡】學習筆記,與課程緊密聯系,讓使用者快速學習知識。

課程位址:

https://developer.aliyun.com/learning/course/804/detail/13877

負載均衡

内容簡介:

一、      負載均衡簡介

二、      常見的負載均衡方式

三、      常見算法

四、      拓展算法

五、      其他負載平衡

一、負載均衡簡介

負載均衡是由多台伺服器以對稱的方式組成一個伺服器集合,每台伺服器都具有等價的地位,可以單獨對外提供服務而無需其他服務的輔助。

平均或不平均的配置設定人物,避免伺服器壓力太大或太小

二、常見的負載均衡方式

1.使用者手動選擇

在遊戲、下載下傳站點,往往會采用分區分服的方式,人工實作負載均衡。

(1)優勢:實作方式簡單,隻要展示所有節點即可。

(2)劣勢:負載均衡不均勻,可能出現某些節點壓力過大,有些節點毫無壓力。

負載均衡 | 學習筆記負載均衡

2.DNS輪詢均衡

大部分DNS服務商都支援為同一主機名設定多個不同的A記錄,DNS伺服器在解析的時候,會根據A記錄的順序,随機配置設定不同的伺服器。

(1)優勢:實作方式簡單,使用者無感覺。

(2)劣勢:可靠性低,出問題修複慢;負載均衡不均勻,可能出現某些節點壓力過大,有些節點毫無壓力。

3.四層/七層負載均衡

對于可靠性較高的業務,會通過四層/七層負載均衡裝置來完成伺服器的負載均衡。

(1)優勢:可靠性高,更新速度快,提供健康檢查。

(2)劣勢:硬體實作需要購買專屬硬體;軟體實作需要自行配制部署。

(3)四層/七層負載均衡的差別:

a) 四層負載均衡在TCP/UDP層面,将外部的IP位址映射到内部的多個IP位址中,每次請求使用其中的一個IP 位址,進而實作負載均衡的目的。

b)七層負載均衡在HTTP協定層面,将使用者請求進行分發。

4.硬體負載均衡和軟體負載均衡

(1)硬體負載均衡:通過硬體裝置實作的負載效果更好、效率高、性能穩定、但是成本比較高。

(2)軟體負載均衡:通過軟體實作的負載均衡主要依賴于均衡算法的選擇和程式的健壯性。網絡處理性能方面不如硬體負載均衡,但是不需要購買專門軟體,成本較低。

三、常見算法

1.輪詢算法

(1)輪詢算法是将每個請求按時間順序或排序順序逐一配置設定到不同的後端節    點上,如果節點出現問題,則排除節點,不再分發請求。

(2)輪詢算法的優勢是實作簡單

(3)輪詢算法的缺點是無法平衡不同主機之間的性能

2.權重輪詢算法

(1)權重輪詢算法是在基本的輪詢政策上加入不同的權重,指定各個節點被輪詢的幾率。

(2)權重輪詢可以有效的處理後端節點性能不同的問題。

3.IP Hash 算法

(1)IP hash 算法是指将用戶端的IP 使用特定的 Hash 算法,将其請求定位到某一台後端伺服器當中。

(2)IP Hash的好處是同一個使用者的請求始終在同一台伺服器上處理,不存在連接配接保持的問題。

(3)IP Hash 的問題是無法保證後端伺服器之間的負載均衡,可能有些後端壓力會較大,而有些壓力較小。

四、拓展算法

1.Fair 算法 

(1)Nginx 可以通過第三方子產品 fair來拓展負載均衡算法

(2)Fair算法通過 Nginx 後端的響應時間來判斷負載情況。Nginx 會将請求分發給負載最輕的節點

(3)優勢是可以有效的平衡不同節點之間的負載

(4)劣勢是需要手動編譯第三方子產品

2.URL Hash 算法

(1)Nginx 可以通過第三方子產品 url hash 來拓展負載均衡算法

(2)url hash 算法與 ip hash類似,不同的是針對用戶端請求的URL進行 hash.

(3)url hash 在後端有緩存的情況下,可以提升緩存的使用率

(4)url hash 的問題是再讓節點出現異常無法自動排除節點

五、其他負載平衡

1.Nginx輪詢負載均衡

負載均衡 | 學習筆記負載均衡

2.Nginx最少連接配接數負載均衡

負載均衡 | 學習筆記負載均衡

3.Nginx随機配置設定負載均衡

負載均衡 | 學習筆記負載均衡

4.Nginx分路徑輪詢負載均衡

負載均衡 | 學習筆記負載均衡

5.Nginx權重輪詢負載均衡

負載均衡 | 學習筆記負載均衡

6.Nginx ip_hash負載均衡

負載均衡 | 學習筆記負載均衡

7.Nginx TCP負載均衡

負載均衡 | 學習筆記負載均衡

繼續閱讀