天天看點

系統設計基礎知識(十三)—内容分發網絡(CDN)

作者:喜歡編碼的社畜

這是系統設計基礎知識系列第十三章内容分發網絡(CDN)。你可以閱讀我以前的文章

系統設計基礎知識(一) - 網絡

系統設計基礎知識(二)—資料庫

系統設計的基礎知識(三)吞吐量和延遲

系統設計基礎知識(四)—系統可用性

系統設計基礎知識(五)—緩存

系統設計基礎知識(六)—緩存區

系統設計基礎知識(七)—代理

系統設計基礎知識(八)了解IP位址和端口

系統設計基礎知識(九)—負載均衡器

系統設計基礎知識(十)—DNS

系統設計基礎知識(十一)—WebSocket協定

系統設計基礎知識(十二)—Raft共識算法

CDN它是代理伺服器及其資料中心的地理分布網絡,通過相對于最終使用者在空間上分布服務來提供高可用性和性能。

随着資訊技術的發展和使用者數量的不斷增加,通過網絡傳輸效率帶來了瓶頸。

即使你在家裡裝了100M的寬帶看劇、看電影、浏覽網站或流媒體,你仍然覺得網速很慢。

這是因為伺服器和使用者之間的距離。如果使用者數量增加,則會導緻網絡擁塞,進而影響整體傳輸效率。

還有帶寬問題。當有大量使用者浏覽同一網站時,使用大量伺服器來支援網絡帶寬。

CDN 旨在解決這兩個問題。

CDN 将靜态内容(例如 HTML、大檔案下載下傳、視訊、音頻點播、實時流媒體和圖像檔案)存儲在世界各地的多個位置。當用戶端送出請求時,将選擇最近的 CDN 位置。

系統設計基礎知識(十三)—内容分發網絡(CDN)

技術原理

要了解 CDN 的概念,我們必須了解用戶端是如何送出請求的。

系統設計基礎知識(十三)—内容分發網絡(CDN)
  1. 使用者在浏覽器位址欄輸入域名,向指定伺服器發起請求
  2. 浏覽器向本地 DNS 伺服器請求網站的解析
  3. 如果本地DNS伺服器有網站的解析結果,直接響應請求,傳回網站對應的IP位址
  4. 如果本地DNS伺服器沒有網站的解析結果,會遞歸地向權威DNS請求解析,然後将結果傳回給使用者
  5. 浏覽器擷取解析結果後,傳回網站對應的IP位址
  6. 浏覽器發起通路請求,從伺服器接收内容
  7. 伺服器傳遞浏覽器請求的内容

但是,第 6 步和第 7 步有一個更複雜的過程。

系統設計基礎知識(十三)—内容分發網絡(CDN)

實體層的作用是實作相鄰節點之間比特行進的實體傳輸,盡可能屏蔽傳輸媒體和實體裝置之間的差異。IP 資料報組裝成幀并在 2 個相鄰節點之間的鍊路上傳輸。網關(路由器)充當網絡的入口和出口點,因為所有 IP 資料報在被路由之前必須通過網關或與網關通信。這樣,網站伺服器通過公網退出,再經過骨幹網,再通過其數據機連接配接到使用者所在的區域網路,最終使用者可以浏覽網站。

系統設計基礎知識(十三)—内容分發網絡(CDN)
系統設計基礎知識(十三)—内容分發網絡(CDN)

然而,骨幹網的傳輸是最耗時的。如果傳輸的資料量很大,并且有大量的使用者通路網站,就會有很長的延遲,影響使用者體驗。每個資料請求都需要麻煩的資料傳輸,影響使用者體驗。

例如,當您通路社交媒體時,網站上必須有數千張圖檔。如果可能有 100 萬人同時請求同一張照片怎麼辦?将有 100 萬次資料傳輸,這對網絡基礎設施具有挑戰性。

是以,CDN技術被用來避免這個問題。

系統設計基礎知識(十三)—内容分發網絡(CDN)

它可以将資料提前存儲在離使用者最近的節點中,進而減輕網絡骨幹的負擔,提高通路速度。

當浏覽器發送請求時,它會從 CDN 緩存伺服器中查找。如果能擷取到資料,則直接傳回。否則,它将通過骨幹網從網站伺服器擷取資料。隻要提前将資料上傳到CDN緩存伺服器,就可以大大降低網絡流量和網絡延遲。

使用者可以來自世界各地。為了減少傳輸延遲,CDN緩存伺服器根據位置類别設定在使用者附近。比如倫敦、紐約、北京、上海等。這樣,各個地區的使用者都可以向對應的CDN伺服器請求。

元素

  1. 分布式存儲
  2. 負載均衡
  3. 網絡請求重定向
  4. 内容管理
  5. 網絡流量管理

内容管理和網絡流量管理是 CDN 的核心。CDN 確定以極其有效的方式傳遞資料内容。

CDN 架構

系統設計基礎知識(十三)—内容分發網絡(CDN)

CDN緩存分為2層。L1和L2的比例配置設定合理。

過程:

  1. 使用者搜尋資料内容并檢查緩存的資料内容是否在本地裝置上。如果用戶端本地有緩存資料内容,則直接下發資料内容。
  2. 如果本地沒有緩存資料内容,則從 CDN L1 通路源資料。如果 L1 有緩存資料内容,則将其傳遞到用戶端本地磁盤進行本地緩存。
  3. 如果沒有來自 CDN L1 的緩存資料内容,則從 CDN L2 通路源資料。如果L2有緩存資料内容,則下發到CDN L1和本地磁盤緩存資料内容
  4. 如果沒有來自 CDN L2 的緩存資料内容,則從原始伺服器通路源資料。将執行編碼和解碼過程以傳回用戶端可以支援的資料。然後,CDN L1、CDN L2、本地磁盤緩存資料内容。

特征

  1. 它提高了網站的通路速度
  2. 消除了不同營運商之間的互聯瓶頸帶來的影響,實作跨營運商的網絡加速,保證不同網絡的使用者都能獲得良好的通路速度
  3. 根據DNS負載均衡技術自動選擇緩存伺服器
  4. 帶寬優化

CDN中的關鍵技術

  1. 内容路由——跨多個遠端服務點 (POP) 的重定向 (DNS) 機制
  2. 内容釋出——它将内容釋出或傳遞到離使用者最近的遠端服務點 (POP)(索引、緩存、流拆分或多點傳播)
  3. 内容交換——它根據内容的可用性、伺服器可用性和使用者類别,使用應用層切換、流拆分和重定向(ICP、WCCP)智能地平衡 POP 緩存伺服器上的負載流量
  4. 性能管理——通過内部和外部監控系統擷取網絡元件在最佳運作狀态下的狀态資訊(資料:丢包、傳輸延遲、平均帶寬、啟動時間、幀率等)

如果你發現我的任何文章對你有幫助或有用,麻煩點贊或者轉發。 謝謝!

繼續閱讀