cdn問題

隨着互聯網的發展,各種網絡應用也雨後春筍般的發展,應用越做越大,訪問路徑越來越長,用戶的訪問質量受到嚴重的影響,特別是用戶和網站之間的鏈路被突發的大流量數據擁堵、異地訪問急需加速,減少網絡費用等因素,對於這些急需解決的問題,於是就有了內容發佈網絡(Content Delivery Network,簡稱CDN)。
CDN是指一種通過互聯網互相連接的電腦網絡系統,利用最靠近用戶的服務器,更快、更可靠地將音樂、圖片、視頻、應用程序及其他文件發送給用戶,來提供高性能、可擴展性及低成本的網絡內容傳遞給用戶。

CDN總承載量可以比單一骨幹最大的帶寬還要大。這使得內容分發網絡可以承載的用戶數量比起傳統單一服務器多。也就是說,若把有100Gbps處理能力的服務器放在只有10Gbps帶寬的數據中心,則亦只能發揮出10Gbps的承載量。但如果放到十個有10Gbps的地點,整個系統的承載量就可以到10*10Gbps。同時,將服務器放到不同地點,可以減少互連的流量,進而降低帶寬成本。

 

CDN訪問路徑

  1. 首先訪問本地的DNS,如果沒有命中,繼續遞歸或者迭代查找,直到命中拿到對應的IP地址。
  2. 拿到對應的IP地址之後服務器端發送請求到目的地址。注意這裏返回的不直接是CDN服務器的IP地址,而是全局負載均衡系統的IP地址
  3. 全局負載均衡系統會根據客戶端的 IP地址和請求的url和相應的區域負載均衡系統通信
  4. 區域負載均衡系統拿着這兩個東西獲取距離客戶端最近且有相應資源的CDN緩存服務器的地址,返回給全局負載均衡系統
  5. 全局負載均衡系統返回確定的CDN緩存服務器的地址給客戶端。
  6. 客戶端請求緩存服務器上的文件

其中有一個比較重要的點,在過程1裏:這個過程中,有一個CNAME的過程,我們訪問CDN資源的地址一般是a.cloud.com或者類似的地址,是一個公司的訪問CDN的專用地址。但是一般用的CDN的服務卻是第三方的,即其實資源在他們的地址上比如tencent.cdn.com。這時候就需要在CDN查詢的時候,需要把我們訪問a.cloud.com的地址映射到tencent.cdn.com的地址上,然後拿着映射後的地址再去走一遍DNS解析,成功之後才獲取到第三方提供的全局負載均衡系統的IP。再繼續走後面的流程。

 

CDN的優勢

我們使用CDN的兩個重要的原因就是加速網站訪問、減少寬帶成本,其次,CDN還有很多作用:

1、爲了實現跨運營商、跨地域的全網覆蓋
互聯不互通、區域ISP地域侷限、出口帶寬受限制等種種因素都造成了網站的區域性無法訪問。CDN加速可以覆蓋全球的線路,通過和運營商合作,部署IDC資源,在全國骨幹節點商,合理部署CDN邊緣分發存儲節點,充分利用帶寬資源,平衡源站流量。阿里雲在國內有500+節點,海外300+節點,覆蓋主流國家和地區不是問題,可以確保CDN服務的穩定和快速。

2、爲了保障你的網站安全
CDN的負載均衡和分佈式存儲技術,可以加強網站的可靠性,相當無無形中給你的網站添加了一把保護傘,應對絕大部分的互聯網攻擊事件。防攻擊系統也能避免網站遭到惡意攻擊。

3、爲了異地備援
當某個服務器發生意外故障時,系統將會調用其他臨近的健康服務器節點進行服務,進而提供接近100%的可靠性,這就讓你的網站可以做到永不宕機。

4、爲了節約成本投入
使用CDN加速可以實現網站的全國鋪設,你根據不用考慮購買服務器與後續的託管運維,服務器之間鏡像同步,也不用爲了管理維護技術人員而煩惱,節省了人力、精力和財力。

5、爲了讓你更專注業務本身
CDN加速廠商一般都會提供一站式服務,業務不僅限於CDN,還有配套的雲存儲、大數據服務、視頻雲服務等,而且一般會提供7x24運維監控支持,保證網絡隨時暢通,你可以放心使用。並且將更多的精力投入到發展自身的核心業務之上。

 

CDN使用場景

CDN是將源站內容分發至最接近用戶的節點,使用戶可就近取得所需內容,提高用戶訪問的響應速度和成功率。解決因分佈、帶寬、服務器性能帶來的訪問延遲問題,適用於站點加速、點播、直播等場景。今天爲大家分享幾個CDN的典型適用場景。

1、網站站點/應用加速
站點或者應用中大量靜態資源的加速分發,建議將站點內容進行動靜分離,動態文件可以結合雲服務器ECS,靜態資源如各類型圖片、html、css、js文件等,建議結合 對象存儲OSS 存儲海量靜態資源,可以有效加速內容加載速度,輕鬆搞定網站圖片、短視頻等內容分發

2、視音頻點播/大文件下載分發加速
支持各類文件的下載、分發,支持在線點播加速業務,如mp4、flv視頻文件或者平均單個文件大小在20M以上,主要的業務場景是視音頻點播、大文件下載(如安裝包下載)等,建議搭配對象存儲OSS使用,可提升回源速度,節約近2/3回源帶寬成本。

3、視頻直播加速
阿里雲一站式 視頻直播服務 服務已正式上線發佈!基於領先的內容接入與分發網絡和大規模分佈式實時轉碼技術打造的音視頻直播平臺,提供便捷接入、高清流暢、低延遲、高併發的音視頻直播服務。支持多直播場景,全景數據統計,豐富角度分析;直播功能豐富,錄製回放、實時封面、實時轉碼、連麥混流。

4、移動應用加速
移動APP更新文件(apk文件)分發,移動APP內圖片、頁面、短視頻、UGC等內容的優化加速分發。提供httpDNS服務,避免DNS劫持並獲得實時精確的DNS解析結果,有效縮短用戶訪問時間,提升用戶體驗。

 

CDN緩存策略

這對不同文件類型合理配置緩存策略能有效的增加CDN回源效率,大幅縮減寬帶成本

1、配製合理的CDN緩存規則
說明:讓當地或就近的 CDN 節點上的緩存內容,直接提供給用戶訪問。多個客戶訪問相同資源也無需回源站獲取內容,以此減少回源帶寬。
優點:緩存住的內容可直接由 CDN 提供資源的訪問。
缺點:根據 CDN 緩存算法 "最近最少使用" 的原則,將最近訪問內容頻率最低的會被清理出 CDN 緩衝中,導致冷資源還會重新回源站獲取。
例如: jpg|bmp|gif 圖片類型緩存 7 天,mp4|flv|ts 視頻類型緩存 30 天
需要注意:當CDN主動更新文件時可能會造成服務器壓力上升,因爲廠商的服務器會有很多,同時拉取更新資源時,請求量會很大。如果恰好處於業務高峯期需要和CDN廠家協商更改拉取時間。

2、去問號回源
說明:只緩存 URL 中的問號 ? 前路徑中的地址資源,而不再緩存整條 URL 地址資源。
優點:只緩存住主要的資源內容,忽略掉問號後的經常變化的參數,有利於提高緩存命中率,減少回源帶寬。
缺點:問號後如果有不同的內容版本號來區分資源,去問號緩存可能會影響實際訪問效果,從而導致訪問到舊資源。
例如: http://www.youku.com/test.mp4... , 配製去問號緩存 http://www.youku.com/test.mp4 做到只緩存這個URL地址資源。

3、開啓 CDN 父層
說明:CDN 父層是指相對於邊緣節點的上層再加了一個共享存儲池,用來將多個 CDN 邊緣節點的請求匯聚到父層,由父層再回源站獲取資源。
優點:由父層統一回源站,可以起到收斂多個 CDN 邊緣節點的請求。做到合併請求,減少回源帶寬。
缺點:父層的部署地區並不是離客戶最近的機房線路,由父層回源鏈路過長可能會被線路抖動產生回源失敗。父層故障可能會導致多個 CDN 邊緣節點無法獲取到回源信息,影響面也較大。

4、開啓 CDN 分段(分片)回源(緩存)
說明:CDN 分片回源是指將一份文件拆分成若干個小文件回源。
優點:通過識別不同類型的文件大小,來調整分片的大小。將客戶第一次請求,由分片服務自動將資源的請求拆分成若干個分片,最終將分片緩存在邊緣或父層中。
缺點:分片服務在第一次無論客戶請求過程中是否斷開,都會將請求進行分片回源。產生較多的請求次數,增加源站的HTTP請求連接數。
例如:以4M爲分片單位,僅對點播和下載文件啓用分片功能。

5、多個加速域名共享CDN緩存
說明:多個加速域名使用同一個源站,多個加速域名默認都會回源獲取資源。
優點:配製了共享CDN緩存策略,多個加速域名只會回源一次,減少回源帶寬。
缺點:多個加速域名的HOST會被合併成一個主要回源域名的HOST,導致記錄回源域名不夠清晰。

6、HTTP 和 HTTPS 共享CDN緩存
說明:HTTP 和 HTTPS 的 URL,默認是分別回源獲取對應的資源。
優點:配製 HTTP 和 HTTPS 共享緩存策略,可以減少回源次數及帶寬。
缺點: HTTP 的回源獲取錯誤文件導致 HTTPS 響應錯誤

7、限制回源帶寬。
說明:針對源站帶寬有一定的限額,如果達到帶寬上限會引起無法響應和請求到源站任何資源。
優點:限制回源帶寬設置閥值,可以減少回源量突增導致無法訪問的異常產生
缺點:會導致回源帶寬突增後,導致超過回源帶寬的請求失敗

8、用第三方雲存儲(或內容注入)
說明:將源站遷移至第三方雲存儲,或CDN緩存節點作爲臨時存儲站。
優點:一次性或者臨時性將源站資源上傳和同步到第三方存儲機構,以減少回源帶寬。
缺點:使用第三方雲存儲會產生使用成本,使用CDN緩存注入節點,將會佔用上傳帶寬。

9、CDN 預取(預熱)
說明:將資源提前一次性推送到CDN的邊緣或者父層緩存節點。
優點:只佔用一次上傳帶寬,而推送到CDN邊緣或父層的內容可直接被用戶訪問。
缺點:需要提前獲得推送資源,並且會佔用上傳帶寬,業務繁忙時預熱會導致上傳帶寬緊張。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章