負載均衡與CDN簡介

2022-06-14 10:33:09 字數 1910 閱讀 6456

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

為什麼要引入負載均衡

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

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

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

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

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

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

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

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

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

負載均衡演算法

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

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

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

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

1) 使用者向瀏覽器提供要訪問的網域名稱;

2) 瀏覽器呼叫網域名稱解析庫對網域名稱進行解析,由於cdn對網域名稱解析過程進行了調整,所以解析函式庫一般得到的是該網域名稱對應的

cname記錄,為了得到實際ip位址,瀏覽器需要再次對獲得的cname網域名稱進行解析以得到實際的ip位址;在此過程中,使用的全域性負載均衡dns解析,如根據地理位置資訊解析對應的ip位址,使得使用者能就近訪問;

3) 此次解析得到cdn快取伺服器的ip位址,瀏覽器在得到實際的ip位址以後,向快取伺服器發出訪問請求;

4) 快取伺服器根據瀏覽器提供的要訪問的網域名稱,通過cache內部專用dns解析得到此網域名稱的實際ip位址,再由快取伺服器向此實際ip位址提交訪問請求;

5) 快取伺服器從實際ip位址得得到內容以後,一方面在本地進行儲存,以備以後使用,二方面把獲取的資料返回給客戶端,完成資料服務過程;

6) 客戶端得到由快取伺服器返回的資料以後顯示出來並完成整個瀏覽的資料請求過程。

全域性負載均衡與CDN內容分發

cdn的全稱是content delivery network,即內容分發網路。cdn是構建在現有網路基礎之上的智慧型虛擬網路,依靠部署在各地的邊緣伺服器,通過中心平台的負載均衡 內容分發 排程等功能模組,使使用者就近獲取所需內容,降低網路擁塞,提高使用者訪問響應速度和命中率。cdn的關鍵技術主要有...

負載均衡簡介

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

負載均衡簡介

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