負載均衡簡介

2021-09-29 05:07:43 字數 1586 閱讀 1817

負載均衡是高可用網路基礎架構的的乙個關鍵組成部分,有了負載均衡,我們通常可以將我們的應用伺服器部署多台,然後通過負載均衡將使用者的請求分發到不同的伺服器用來提高**、應用、資料庫或其他服務的效能以及可靠性。

為什麼要引入負載均衡

先看乙個沒有負載均衡機制的web架構:

上圖中的架構有什麼缺陷了?首先,使用者是通過網路直接和web伺服器相連,想象一下,如果這個伺服器掛了(這種情況隨時都可能發生的),那麼使用者的請求就會得不到響應,將無法訪問該**,這就是著名的單點故障問題,這肯定是不行的,一般而言,商業上的**其可靠性需要達到至少4個9,也就是99.99&以上。

其次,即使伺服器是正常工作的情況,但是如果很多使用者在同一時間內訪問伺服器,超過了伺服器的處理能力,那麼會出現響應速度慢甚至無法連線的情況,這也是使用者無法接受的。

負載均衡的出現可以很好的解決上面兩個問題,通過引入乙個負載均衡器和至少兩個web 伺服器,可以有效的解決上面兩個問題。注:通常情況下,所有的後端伺服器會保證提供相同的內容,以便使用者無論哪個伺服器響應,都能收到一致的內容。

負載均衡如何選擇要**的後端伺服器

負載均衡器一般根據兩個因素來決定要將請求**到哪個伺服器。

1:確保所選擇的後端伺服器是正常工作的,能給對使用者的請求做出響應;

2:根據預先設定的負載均衡演算法從健康伺服器池中進行選擇。

由於負載均衡器只應當選擇能正常做出響應的後端伺服器,因此就需要有一種機制能判斷它所連的後端伺服器是否正常工作。為了監視後台伺服器的執行狀況,執行狀態檢查服務會定期嘗試使用**規則定義的協議和埠去連線後端伺服器。如果某個伺服器沒有通過健康檢查,就會從健康池中剔除,保證流量不會被**到該伺服器,直到其再次通過健康檢查為止。

負載均衡演算法

輪詢:為第乙個請求選擇健康池中的第乙個後端伺服器,然後按順序往後依次選擇,直到最後乙個,然後迴圈。

最小連線:優先選擇連線數最少,也就是壓力最小的後端伺服器,在會話較長的情況下可以考慮採取這種方式。

雜湊:根據請求源的 ip 的雜湊(hash)來選擇要**的伺服器。這種方式可以一定程度上保證特定使用者能連線到相同的伺服器。如果你的應用需要處理狀態而要求使用者能連線到和之前相同的伺服器,可以考慮採取這種方式。

最後,想要解決負載均衡器的單點故障問題,可以將第二個負載均衡器連線到第乙個上,從而形成乙個集群。如下圖所示:

當主負載均衡器發生了故障,就需要將使用者請求轉到第二個負載均衡器。由於 dns 更改通常會在較長的時間才能生效,因此需要有一種能靈活解決 ip 位址重新對映的方法,比如浮動 ip(floating ip)。這樣網域名稱可以保持和相同的 ip 相關聯,而 ip 本身則能在伺服器之間移動。下面就是乙個使用浮動 ip 的負載均衡架構動態示意圖:

負載均衡簡介

負載均衡 load balance 是分布式系統架構設計中必須考慮的因素之一,它通常是指,將請求 資料 均勻 分攤到多個操作單元上執行,負載均衡的關鍵在於 均勻 常見網際網路分布式架構如上,分為客戶端層 反向 nginx層 站點層 服務層 資料層。什麼是負載均衡 負載均衡 load balance ...

負載均衡簡介

原文 負載均衡 load balance 是分布式系統架構設計中必須考慮的因素之一,它通常是指,將請求 資料 均勻 分攤到多個操作單元上執行,負載均衡的關鍵在於 均勻 常見網際網路分布式架構如上,分為客戶端層 反向 nginx層 站點層 服務層 資料層。2016 09 14 15 57 移動端 收藏...

負載均衡簡介

當我們的web伺服器直接面向使用者,往往要承載大量併發請求,單台伺服器難以負荷,我使用多台web伺服器組成集群,前端使用nginx負載均衡,將請求分散的打到我們的後端伺服器集群中,實現負載的分發。那麼會大大提公升系統的吞吐率 請求效能 高容災 往往我們接觸的最多的是slb server load b...