- 鳳凰架構:構建可靠的大型分布式系統
- 周志明
- 812字
- 2021-06-24 11:30:59
4.4 內容分發網絡
前面幾節介紹了客戶端緩存、域名解析、鏈路優化,這節我們來討論它們的一個經典的綜合運用案例:內容分發網絡(Content Distribution Network,CDN,也有寫作Content Delivery Network)。
內容分發網絡是一種十分古老的應用,相信大部分讀者都或多或少對其有一定了解,至少聽過它的名字。如果把某個互聯網系統比喻為一家企業,那內容分發網絡就是它遍布世界各地的分支銷售機構。假設現在有客戶要買一塊CPU,那么訂機票飛到美國加州Intel總部肯定是不合適的,到本地電腦城找個裝機鋪才是通常的做法,在此場景中,內容分發網絡就相當于電腦城里的本地經銷商。
內容分發網絡又是一種十分透明的應用,可能絕大多數讀者對于它為互聯網站點分流的工作原理并沒有什么系統性的概念,至少沒有自己親自使用過。
如果拋卻其他影響服務質量的因素,僅從網絡傳輸的角度看,一個互聯網系統的速度取決于以下四個因素。
·網站服務器接入網絡運營商的鏈路所能提供的出口帶寬。
·用戶客戶端接入網絡運營商的鏈路所能提供的入口帶寬。
·從網站到用戶經過的不同運營商之間的互聯節點的帶寬,一般來說兩個運營商之間只有固定的若干個點是互通的,所有跨運營商之間的交互都要經過這些點。
·從網站到用戶的物理鏈路傳輸時延。愛打游戲的讀者應該都清楚,延遲(Ping值)比帶寬更重要。
以上四個因素,除了第二個只能通過換一個更好的寬帶才能改善之外,其余三個都能通過內容分發網絡來顯著改善。一個運作良好的內容分發網絡,能為互聯網系統解決跨運營商、跨地域物理距離所導致的時延問題,能為網站流量帶寬起到分流、減負的作用。舉個例子,如果不是有遍布全國乃至全世界的阿里云CDN網絡支持,哪怕把整個杭州所有市民上網的權力都剝奪了,把帶寬全部讓給淘寶的機房,恐怕也撐不住全國乃至全球用戶在雙十一期間的瘋狂“圍毆”。
內容分發網絡的工作過程,主要涉及路由解析、內容分發、負載均衡和CDN應用四個方面,由于下一節會專門討論負載均衡的內容,所以這部分在本節暫不涉及,下面我們來逐一了解其余三個方面。
- 構建高可用Linux服務器(第4版)
- 蘋果電腦玩全攻略 OS X 10.8 Mountain Lion
- Ubuntu Linux操作系統
- Instant Optimizing Embedded Systems using Busybox
- Kali Linux高級滲透測試
- Vim 8文本處理實戰
- AWS SysOps Cookbook
- Windows 8實戰從入門到精通(超值版)
- Linux軟件管理平臺設計與實現
- 鴻蒙HarmonyOS手機應用開發實戰
- Hadoop Real-World Solutions Cookbook
- Learning Continuous Integration with Jenkins(Second Edition)
- 完美應用Ubuntu(第2版)
- Getting Started with UDK
- Less Web Development Essentials