cdn詳解

1、定義

背景:mysql

當下的互聯網應用都包含大量的靜態內容,但靜態內容以及一些準動態內容又是最耗費帶寬的,特別是針對全國甚至全世界的大型網站,若是這些請求都指向主站的服務器的話,不只是主站服務器受不了,單端口500M左右的帶寬也扛不住,因此大多數網站都須要CDN服務。web

CDN,Content Delivery Network,基於內容的分佈式分發網絡。 
那麼什麼是CDN服務? 
  簡單的說CDN就是讓本來上海的瀏覽器要訪問北京主站內容的請求轉而由部署在上海或南京的緩存來受理,這樣請求的數據只需通過一跳或有限的幾跳就能到達請求端,有效利用帶寬而且下降主站壓力,對於電子商務網站和搜索引擎網站以及門戶網站,CDN的合理應用顯得尤其重要。sql

通常須要CDN服務的網站會選擇如下的組織方案: 
1.經過租用的IDC提供額外的CDN服務; 
2..購買專業的CDN服務商的服務; 
3.本身組建CDN網絡;成本依次增高。數據庫

  CDN設計目的是實現WEB內容的負載均衡,防止出現訪問請求熱點,延時響應等WEB請求通病。基於此,CDN的特色能夠說有 
1. 分佈式存儲 
2. 經過智能DNS解析或http重定向實現內容分發的負載均衡 
3. 全局負載均衡管理與內容管理瀏覽器

2、CDN網絡結構

CDN網絡通常分爲中心與邊緣節點兩部分,中心負責全局負載均衡管理與內容管理;緩存

中心節點的功能以下: 
1. 隨時監控邊緣節點的健康情況(可用性,擁塞程度); 
2. 根據邊緣節點到請求端的距離,以及邊緣節點的健康情況,按必定的策略重定向請求; 
3. 與客戶主站進行數據同步。服務器

3、CDN工做原理

傳統的未加緩存服務的訪問過程:網絡

  1. 用戶向瀏覽器提供要訪問的域名;
  2. 瀏覽器調用域名解析函數庫對域名進行解析,以獲得此域名對應的IP地址;
  3. 瀏覽器使用所獲得的IP地址,域名的服務主機發出數據訪問請求;
  4. 瀏覽器根據域名主機返回的數據顯示網頁的內容。

這裏寫圖片描述

  CDN網絡是在用戶和服務器之間增長Cache層, 如何將用戶的請求引導到Cache上得到源服務器的數據,主要是經過接管DNS實現,訪問使用CDN緩存後的網站的過程:負載均衡

  1. 用戶向瀏覽器提供要訪問的域名;
  2. 瀏覽器調用域名解析庫對域名進行解析,因爲CDN對域名解析過程進行了調整,因此解析函數庫通常獲得的是該域名對應的CNAME記錄,爲了獲得實 際IP地址,瀏覽器須要再次對得到的CNAME域名進行解析以獲得實際的IP地址;在此過程當中,使用的全局負載均衡DNS解析,如根據地理位置信息解析對應的IP地址,使得用戶能就近訪問。
  3. 這次解析獲得CDN緩存服務器的IP地址,瀏覽器在獲得實際的IP地址之後,向緩存服務器發出訪問請求;
  4. 緩存服務器根據瀏覽器提供的要訪問的域名,經過Cache內部專用DNS解析獲得此域名的實際IP地址,再由緩存服務器向此實際IP地址提交訪問請求;
  5. 緩存服務器從實際IP地址得獲得內容之後,一方面在本地進行保存,以備之後使用,二方面把獲取的數據返回給客戶端,完成數據服務過程;

這裏寫圖片描述

4、具體實例

1.用戶向瀏覽器輸入www.web.com這個域名,瀏覽器第一次發現本地沒有dns緩存,則向網站的DNS服務器請求; 
2.網站的DNS域名解析器設置了CNAME,指向了www.web.51cdn.com,請求指向了CDN網絡中的智能DNS負載均衡系統; 
3.智能DNS負載均衡系統解析域名,把對用戶響應速度最快的IP節點返回給用戶; 
4.用戶向該IP節點(CDN服務器)發出請求; 
5.因爲是第一次訪問,CDN服務器會向原web站點請求,並緩存內容; 
6.請求結果發給用戶。分佈式

這裏寫圖片描述

  固然不少細節沒有涉及到,好比第1步,首先向本地的DNS服務器請求。第5步,內容淘汰機制(根據TTL)等。但原理大致如此。

  對於普通的Internet用戶來說,每一個CDN節點就至關於一個放置在它周圍的WEB。經過全局負載均衡DNS的控制,用戶的請求被透明地指向離他最近的節點,節點中CDN服務器會像網站的原始服務器同樣,響應用戶的請求。因爲它離用戶更近,於是響應時間必然更快。

  每一個CDN節點由兩部分組成:負載均衡設備和高速緩存服務器 
  負載均衡設備負責每一個節點中各個Cache的負載均衡,保證節點的工做效率;同時,負載均衡設備還負責收集節點與周圍環境的信息,保持與全局負載DNS的通訊,實現整個系統的負載均衡。CDN的管理系統是整個系統可以正常運轉的保證。它不只能對系統中的各個子系統和設備進行實時監控,對各類故障產生相應的告警,還能夠實時監測到系統中 總的流量和各節點的流量,並保存在系統的數據庫中,使網管人員可以方便地進行進一步分析。經過完善的網管系統,用戶能夠對系統配置進行修改。

5、關鍵技術

  CDN的關鍵技術主要有內容路由技術、內容分發技術、內容存儲技術、內容管理技術等。 具體的我就不深究了,若有機會接觸,再繼續深刻。

相關文章
相關標籤/搜索