CDN(content delivery network 或 content distribution network)模式專一於經過全球分佈式緩存架構爲常常訪問的文件減小網絡訪問時的延遲。目標是加快交付應用程序內容給用戶。內容是任何能夠存儲在一個文件,如圖像、 視頻和文檔。內容交付網絡 (CDN) 是一種全球分佈式緩存的服務。CDN 在世界各地的許多地方保存了應用程序文件的副本。當用戶訪問時,會選擇離這些地方接近結點,內容不須要走長距離網絡來傳遞,因此它能訪問到達速度更快,以此來改善用戶體驗。CDN 節點設在世界各地但願盡能夠能接近的用戶。它有本身的 URL 負載平衡解析器,根據用戶不一樣地理位置,不管用戶在什麼地方將用戶引向最近的節點。html
CDN所面臨的挑戰:數據庫
• 應用程序數據訪問從不必定能接近它所在地理位置最近的數據中心緩存
• 多個客戶端訪問相同的應用程序數據對象 (如 HTML、 JavaScript、 圖像、 視頻或其餘文件)網絡
• 應用程序有包括大流量下載、 流媒體視頻或其餘大流量級的內容架構
CDN 能夠有效地減小節點負載以加快各類類型的內容。分佈式
通常來講,互聯網更快速度地數據傳輸與源數據和客戶端有密切關係。將源數據的緩存副本放置得與客戶端比較接近,當用戶須要訪問數據時,從最接近的位置檢索它將比從原始結點檢索會更快兒些。這種作法一般稱爲分佈式緩存,這也是CDN 的做用所在。具體地說,咱們將關注是經過 HTTP 訪問的文件。雖然全部用戶看到相同的 URL文件,不一樣的用戶將被路由到不一樣的 CDN 節點。這是 CDN的要點 : 將請求路由到就近的 CDN 節點,以提升響應速度。視頻
使用CDN的先後的簡單示意圖:htm
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
但願對您軟件架構有幫助。您可能感興趣的文章: