簡介
- CDN(Content Delivery Network)即內容分發網絡,依靠部署在各地的邊緣服務器,經過中心平臺的負載均衡、內容分發、調度等功能,使用戶就近獲取所需內容,提升用戶訪問響應速度和命中率。---- 來自:CDN百度百科
舉個簡單的例子:讓本來上海的瀏覽器要訪問北京主站內容的請求,轉而由部署在上海或其餘地方的緩存來受理,這樣請求的數據只須要通過很短的距離就可以到達請求端,有效利用帶寬並下降主站壓力
工做原理
- CDN網絡通常分爲中心節點和邊緣節點
- 中心節點功能:監控邊緣節點的狀況(可用性,擁塞程度),全局負載均衡管理,與主站點進行數據同步
- CDN工做原理:
瀏覽器訪問一個網站所經歷的步驟
- 未加CDN緩存的網站
- 用戶在瀏覽器地址欄輸入要訪問的域名
- 瀏覽器解析域名獲得對應的IP地址,再向此IP地址的服務器發出訪問請求
- 瀏覽器根據服務器返回的東西顯示網頁內容
- 加CDN緩存的網站
- 用戶在瀏覽器中輸入要訪問的域名
- 瀏覽器對域名解析,(CDN對域名解析過程進行了調整)獲得該域名的CNAME記錄,而後利用全局的負載均衡DNS解析獲得實際的IP地址
- 瀏覽器在獲得了實際的IP地址(緩存服務器的IP)後向緩存服務器發出訪問請求
- 緩存服務器根據瀏覽器提供的要訪問的域名經過DNS解析獲得該域名對應的實際的IP地址,而後該緩存服務器向此實際IP地址提交訪問請求
- 緩存服務器從實際IP地址獲得內容後,進行兩個操做:
- 將獲得的內容保存到本地,以便之後使用
- 將獲取的內容返回給客戶端,完成數據服務過程
- 示例:
- 如圖所示:

- 瀏覽器訪問站點的步驟:
- 用戶在瀏覽器的地址欄中輸入www.web.com,而後回車,瀏覽器發現本地沒有DNS緩存,就向網站的DNS服務器請求
- 網站的DNS域名解析器設置了CNAME,指向了www.web.51cdn.com(CDN只能接職能負載均衡系統)
- 職能DNS負載均衡系統解析域名,把對用戶響應速度最快的IP節點返回給用戶
- 瀏覽器向該IP節點發送請求
- 第一次訪問的時候,CDN服務器請求原web站點,獲得內容後一方面將獲得的內容緩存到本地;另外一方面將請求的結果返回給客戶端(下次訪問的時候,若是節點的緩存內容可用的話,就不會再請求原web站點了)
- CDN關鍵技術
CND關鍵技術有:內容路由技術、內容分發技術、內容存儲技術、內容管理技術
- 內容路由功能
- CDN的負載均衡系統實現CDN的內容路由功能。CDN內容路由功能做用使用戶請求到達CDN網絡中的最佳節點
- 全局負載均衡主要目的是讓用戶的請求到達CDN網絡中最近的節點
- 局部負載均衡 在特定的範圍內尋找一臺合適的節點提供服務(要考慮到節點的健康性、負載狀況、支持的媒體格式等運行狀態)
- 內容分發技術
內容分發技術主要是PUSH和PULL
- PUSH是一種主動分發的技術,一般由內容管理系統發起,將內容從源或者中心媒體資源庫發佈到各個邊緣的Cache節點(HTTP/FTP)
- PULL 是一種被動的分發技術,當用戶請求的內容不在請求所達到的邊緣Cache的節點上時,該節點會從內容源或其餘節點PULL下所需的內容(按需分發)
- 內容存儲技術
- 內容源的存儲
一般採用海量存儲架構(內容的規模及吞吐量較大)
- 在Cache節點中的存儲
Cache節點的存儲要考慮:
- 功能上,對各類內容格式的支持、對部分緩存的支持
- 性能上,容量大小,吞吐率、可靠性及穩定性
- 內容管理技術
本地內容管理(對Cache節點而言)的目標是提升內容服務的效率,提升本地節點的存儲利用率。
- 本地內容索引是實現基於內容感知調度的關鍵
- 本地內容的複製。一般爲了提升存儲的效率,同一個內容只在某個特定的節點中存儲一份,當對該內容的訪問超過這個節點的能力範圍,就將該內容進行分發到其餘節點上
- 本地內容訪問狀態的收集。蒐集各個節點上各個內容訪問的統計信息,節點可用服務能力及內容變化的狀況
注:在這裏只是簡單介紹了一下這幾種技術,並非特別詳細,先對這些有個大概瞭解,方便之後的學習,若是感受本文的內容說的不具體的話能夠看一下這篇文章:CDN技術詳解及實現原理,由於有些東西我還不懂,因此有些內容還未涉及到,請你們見諒。
注:本文參考 CDN 及 CDN的四大關鍵技術
如需轉載請註明出處:http://www.cnblogs.com/zhuchenglin/p/8978600.htmlhtml
個人博客即將搬運同步至騰訊雲+社區,邀請你們一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=24pg1rt5k61wsweb