CDN(content delivery network 或 content distribution network)模式專注於通過全球分布式緩存架構為經常訪問的文件減少網絡訪問時的延遲。目標是加快交付應用程序內容給用戶。內容是任何可以存儲在一個文件,如圖像、 視頻和文檔。內容交付網絡 (CDN) 是一種全球分布式緩存的服務。CDN 在世界各地的許多地方保存了應用程序文件的副本。當用戶訪問時,會選擇離這些地方接近結點,內容不需要走長距離網絡來傳遞,所以它能訪問到達速度更快,以此來改善用戶體驗。CDN 節點設在世界各地希望盡可以能接近的用戶。它有自己的 URL 負載平衡解析器,根據用戶不同地理位置,無論用戶在什么地方將用戶引向最近的節點。
CDN所面臨的挑戰:
• 應用程序數據訪問從不一定能接近它所在地理位置最近的數據中心
• 多個客戶端訪問相同的應用程序數據對象 (如 HTML、 JavaScript、 圖像、 視頻或其他文件)
• 應用程序有包括大流量下載、 流媒體視頻或其他大流量級的內容
CDN 可以有效地減少節點負載以加快各種類型的內容。
一般來說,互聯網更快速度地數據傳輸與源數據和客戶端有密切關系。將源數據的緩存副本放置得與客戶端比較接近,當用戶需要訪問數據時,從最接近的位置檢索它將比從原始結點檢索會更快兒些。這種做法通常稱為分布式緩存,這也是CDN 的作用所在。具體地說,我們將關注是通過 HTTP 訪問的文件。雖然所有用戶看到相同的 URL文件,不同的用戶將被路由到不同的 CDN 節點。這是 CDN的要點 : 將請求路由到就近的 CDN 節點,以提高響應速度。
使用CDN的前后的簡單示意圖:
CDN的限制:
CDN 對於不經常訪問的資源是無效的。通常只有在 CDN緩存過期前有至少兩次訪問的資源才算有效。
CDN 對於不斷變化的資源不適用。
CDN 對於不想公開資源可能是一個糟糕的選擇。
緩存可以不一致
CDN存儲的資源復本指定過期時間,因而緩存圖像文件可在僧一個小時,一個月有效的。任何資源緩存在CDN上,是潛在歷史版本,因為在源數據與副本之間總是有一個更新與傳輸的延遲。這不是一個問題,但是需要考慮因素是緩存有效時間需要多長。Tips:緩存不命中就是低效的。
現實案例
淘寶在2010年的數據記錄,淘寶CDN服務的圖片規模包括大約250T容量的原圖和大約250T容量的縮略圖總和;約286億左右的圖片數,平均圖片大小是17.45K;8K以下圖片占圖片數總量的61%,占存儲容量的11%。CDN的部署規模達到22個節點,部署在網民相當密集的中心城市,每個節點目前處理能力在10G或以上,CDN部署的總處理能力已到220G以上,目前承載淘寶流量高峰時119G。淘寶自主研發CDN系統架構如下圖:
隨着CDN的興起,它的介值鏈也出來的,如下圖:
商業的CDN jet-stream, 藍訊,網宿
免費的CDN:CloudFlare,Incapsula,OpenCDN
希望對您軟件架構有幫助。您可能感興趣的文章:
作者:Petter Liu
出處:http://www.cnblogs.com/wintersun/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
該文章也同時發布在我的獨立博客中-Petter Liu Blog。