CDN(Content Delivery Network)技術原理概要


簡介

  1. CDN(Content Delivery Network)即內容分發網絡,依靠部署在各地的邊緣服務器,通過中心平台的負載均衡、內容分發、調度等功能,使用戶就近獲取所需內容,提高用戶訪問響應速度和命中率。---- 來自:CDN百度百科
    舉個簡單的例子:讓原本上海的瀏覽器要訪問北京主站內容的請求,轉而由部署在上海或其他地方的緩存來受理,這樣請求的數據只需要經過很短的距離就能夠到達請求端,有效利用帶寬並降低主站壓力

工作原理

  1. CDN網絡一般分為中心節點和邊緣節點

    1. 中心節點功能:監控邊緣節點的情況(可用性,擁塞程度),全局負載均衡管理,與主站點進行數據同步
  2. CDN工作原理:
    瀏覽器訪問一個網站所經歷的步驟

    1. 未加CDN緩存的網站
      1. 用戶在瀏覽器地址欄輸入要訪問的域名
      2. 瀏覽器解析域名得到對應的IP地址,再向此IP地址的服務器發出訪問請求
      3. 瀏覽器根據服務器返回的東西顯示網頁內容
    2. 加CDN緩存的網站
      1. 用戶在瀏覽器中輸入要訪問的域名
      2. 瀏覽器對域名解析,(CDN對域名解析過程進行了調整)得到該域名的CNAME記錄,然后利用全局的負載均衡DNS解析得到實際的IP地址
      3. 瀏覽器在得到了實際的IP地址(緩存服務器的IP)后向緩存服務器發出訪問請求
      4. 緩存服務器根據瀏覽器提供的要訪問的域名通過DNS解析得到該域名對應的實際的IP地址,然后該緩存服務器向此實際IP地址提交訪問請求
      5. 緩存服務器從實際IP地址得到內容后,進行兩個操作:
        1. 將得到的內容保存到本地,以便以后使用
        2. 將獲取的內容返回給客戶端,完成數據服務過程
  3. 示例:

    1. 如圖所示:
      CDN工作原理
    2. 瀏覽器訪問站點的步驟:
      1. 用戶在瀏覽器的地址欄中輸入www.web.com,然后回車,瀏覽器發現本地沒有DNS緩存,就向網站的DNS服務器請求
      2. 網站的DNS域名解析器設置了CNAME,指向了www.web.51cdn.com(CDN只能接職能負載均衡系統)
      3. 職能DNS負載均衡系統解析域名,把對用戶響應速度最快的IP節點返回給用戶
      4. 瀏覽器向該IP節點發送請求
      5. 第一次訪問的時候,CDN服務器請求原web站點,得到內容后一方面將得到的內容緩存到本地;另一方面將請求的結果返回給客戶端(下次訪問的時候,如果節點的緩存內容可用的話,就不會再請求原web站點了)
  4. CDN關鍵技術
    CND關鍵技術有:內容路由技術、內容分發技術、內容存儲技術、內容管理技術

    1. 內容路由功能
      1. CDN的負載均衡系統實現CDN的內容路由功能。CDN內容路由功能作用使用戶請求到達CDN網絡中的最佳節點
      2. 全局負載均衡主要目的是讓用戶的請求到達CDN網絡中最近的節點
      3. 局部負載均衡 在特定的范圍內尋找一台合適的節點提供服務(要考慮到節點的健康性、負載情況、支持的媒體格式等運行狀態)
    2. 內容分發技術
      內容分發技術主要是PUSH和PULL
      1. PUSH是一種主動分發的技術,通常由內容管理系統發起,將內容從源或者中心媒體資源庫發布到各個邊緣的Cache節點(HTTP/FTP)
      2. PULL 是一種被動的分發技術,當用戶請求的內容不在請求所達到的邊緣Cache的節點上時,該節點會從內容源或其他節點PULL下所需的內容(按需分發)
    3. 內容存儲技術
      1. 內容源的存儲
        通常采用海量存儲架構(內容的規模及吞吐量較大)
      2. 在Cache節點中的存儲
        Cache節點的存儲要考慮:
        1. 功能上,對各種內容格式的支持、對部分緩存的支持
        2. 性能上,容量大小,吞吐率、可靠性及穩定性
    4. 內容管理技術
      本地內容管理(對Cache節點而言)的目標是提高內容服務的效率,提高本地節點的存儲利用率。
      1. 本地內容索引是實現基於內容感知調度的關鍵
      2. 本地內容的復制。通常為了提高存儲的效率,同一個內容只在某個特定的節點中存儲一份,當對該內容的訪問超過這個節點的能力范圍,就將該內容進行分發到其他節點上
      3. 本地內容訪問狀態的收集。搜集各個節點上各個內容訪問的統計信息,節點可用服務能力及內容變化的情況

    注:在這里只是簡單介紹了一下這幾種技術,並不是特別詳細,先對這些有個大概了解,方便以后的學習,如果感覺本文的內容說的不具體的話可以看一下這篇文章:CDN技術詳解及實現原理,因為有些東西我還不懂,所以有些內容還未涉及到,請大家見諒。

注:本文參考 CDNCDN的四大關鍵技術
如需轉載請注明出處:http://www.cnblogs.com/zhuchenglin/p/8978600.html

我的博客即將搬運同步至騰訊雲+社區,邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=24pg1rt5k61ws


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM