天天看點

簡述負載均衡&CDN技術

雲栖号資訊:【 點選檢視更多行業資訊

在這裡您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!

曾經見到知乎上有人問“為什麼像facebook這類的網站需要上千個工程師維護?”,下面的回答多種多樣,但總結起來就是:一個高性能的web系統需要從無數個角度去考慮他,大到伺服器的布局,小到軟體中某個檔案的實作,甚至于某個循環内的運算如果出現不嚴謹都可能導緻全盤崩潰。

上面提到web性能優化需要多個角度去考慮,我們無法考慮到所有的優化細節,但可以從我們已知的層面去優化,我們就先從網絡層面說起。

①網絡請求路徑:

簡述負載均衡&CDN技術

在這個用例中我們可以很清晰的看出網絡請求到傳回的過程,雖然非常抽象,但足夠我們以他為基礎來進行優化了。

1)負載均衡

簡述負載均衡&CDN技術

在計算機上負載均衡也類似如此,我們的大BOSS用戶端将請求發送至伺服器,然而一台伺服器是無法承受很高的并發量的,我們就會将請求轉發到其他伺服器,當然真正的負載均衡架構并不是由一台server轉發的另一台server,而在用戶端與伺服器端中間加入了一個負責配置設定請求的負載均衡硬體(軟體)。

DNS

簡述負載均衡&CDN技術

最早的負載均衡就是利用搭建本地DNS伺服器實作的,實作方式簡單易懂,為同一個主機名配置設定多個映射 ,可采用輪循,随機等方式配置設定請求。

看上去沒什麼問題,但是在使用過程中會發現,如果其中一個位址down機,我們是無法及時發現的,如果有使用者被配置設定到這個主機就會出現通路失敗的狀況,同時我們也無法判斷每個server的負載,可能會出現,某個server幾乎閑置,另外一個server負載壓力極高的情況。

簡述負載均衡&CDN技術

硬體裝置

簡述負載均衡&CDN技術

負載均衡裝置擁有非常好的負載均衡性能,他擁有衆多的負載均衡政策(權重,動态比率,最快模式,最小連接配接數等),可以保證以相對較優的方式配置設定請求,不過好的東西總是有代價的,那就是價格,一台負載均衡器的售價往往高達十幾萬甚至幾十萬,許多企業并不願意為它買單。

反向代理

簡述負載均衡&CDN技術

第一次聽到“反向代理”,可能有些陌生,但如果了解與之對應的正向代理就很好了解了,正向代理通常由用戶端主動連結,比如我們的科學的上網方式就是使用正向代理,以達到間接通路網站的目。

而反向代理在伺服器端,無需主動連結,當我們通路擁有反向代理的網站時,實際通路的是其反向代理伺服器,而非真正的伺服器,當請求到達反向代理伺服器時,反向代理伺服器再将請求轉發至伺服器。

反向代理是實作負載均衡的主流手段之一,通常使用Nginx等伺服器搭建,Nginx同樣擁有衆多的配置設定政策,以保證平均配置設定壓力。

簡述負載均衡&CDN技術
簡述負載均衡&CDN技術
簡述負載均衡&CDN技術

2)CDN

視訊總在緩沖,圖檔各種加載不出來,幾年前是再正常不過的事了,在當時大家也沒覺得是回事,但把這種情況放在現在,我想人們絕對直接就小紅叉了吧,那麼我們如何避免這樣的情況呢?這就是我要說的,内容分發網絡(Content Delivery Network),簡稱:CDN。

CDN簡單的來說就是存儲一些靜态檔案的一台或多台伺服器,通過複制,緩存等方式,将檔案儲存其中。

1.哪些是靜态檔案?

css,html,圖檔,媒體都屬于靜态檔案,也就是說使用者發送的請求不會影響靜态檔案的内容,而jsp,php等檔案就不屬于靜态檔案,因為他們的内容會因我們的請求而發生改變。

2.CDN如何實作加速?

通常情況下,我們所要的資料都是從主伺服器中擷取,但假如我們的主伺服器在南方,而通路使用者在北方,那麼通路速度就會相對變慢,變慢的原因有很多,例如傳輸距離,營運商,帶寬等等因素,而使用CDN技術的話,我們會将CDN節點分布在各地,當使用者發送請求到達伺服器時,伺服器會根據使用者的區域資訊,為使用者配置設定最近的CDN伺服器。

3.CDN資料從哪裡來?

複制,緩存,CDN伺服器可以在使用者請求後緩存檔案,也可以主動抓取主伺服器内容。

分布在各地的CDNS:

簡述負載均衡&CDN技術

【雲栖号線上課堂】每天都有産品技術專家分享!

課程位址:

https://yqh.aliyun.com/zhibo

立即加入社群,與專家面對面,及時了解課程最新動态!

【雲栖号線上課堂 社群】

https://c.tb.cn/F3.Z8gvnK

原文釋出時間:2020-04-20

本文作者:吳紋羽

本文來自:“

網際網路架構師 微信公衆号

”,了解相關資訊可以關注“

網際網路架構師