CDN: 緩存刷新和緩存預熱


 CDN—ContentDeliveryNetwork,即內容分發網絡。CDN是構建在網絡之上的內容分發網絡,依靠部署在各地的邊緣服務器,通過中心平台的分布式緩存、負載均衡、內容分發、調度等功能模塊,使用戶就近獲取所需內容,降低網絡擁塞,提高用戶訪問響應速度和命中率。CDN的關鍵技術主要有內容存儲和分發技術。

 目的:解決因分布、帶寬、服務器性能帶來的訪問延遲問題,適用於站點加速、點播、直播等場景。

            使用戶可就近取得所需內容,解決 Internet網絡擁擠的狀況,提高用戶訪問網站的響應速度和成功率。同時,緩解中心源服務器的負荷壓力,降低了骨干網絡的負載流量,也降低了端到端時延,提高了服務質量和用戶使用體驗。

           控制時延無疑是現代信息科技的重要指標,CDN的意圖就是盡可能的減少資源在轉發、傳輸、鏈路抖動等情況下順利保障信息的連貫性。

 

CDN網絡中包含的功能實體包括內容緩存設備、內容交換機、內容路由器、CDN內容管理系統等組成。  
  • 內容緩存為CDN網絡節點,位於用戶接入點,是面向最終用戶的內容提供設備,可緩存靜態Web內容和流媒體內容,實現內容的邊緣傳播和存儲,以便用戶的就近訪問.
  • 內容交換機處於用戶接入集中點,可以均衡單點多個內容緩存設備的負載,並對內容進行緩存負載平衡及訪問控制.
  • 內容路由通常通過負載均衡系統來實現,動態均衡各個內容緩存站點的載荷分配,為用戶的請求選擇最佳的訪問站點,同時提高網站的可用性。
  • 內容管理系統負責整個CDN的管理,是可選部件,作用是進行內容管理,如內容的注入和發布、內容的分發、內容的審核、內容的服務等

 流程圖

DNS 服務器根據用戶 IP 地址,將域名解析成相應節點的緩存服務器IP地址,實現用戶就近訪問。使用 CDN 服務的網站,只需將其域名解析權交給 CDN 的全局負載均衡(GSLB)設備,將需要分發的內容注入 CDN,就可以實現內容加速了。

 https://segmentfault.com/a/1190000010631404
  1. 瀏覽器向 本地DNS服務器 請求對域名的解析。

  2. 本地DNS服務器中如果緩存有這個域名的解析結果,則直接響應用戶的解析請求;如果沒有則遞歸向整個DNS系統請求解析,獲得應答后將結果反饋給瀏覽器。

  3. 瀏覽器得到域名解析結果,就是該域名相應的服務設備的 IP地址 。

  4. 瀏覽器向服務器請求內容。

  5. 服務器將用戶請求內容傳送給瀏覽器。



 
  1. 當用戶點擊網站頁面上的內容URL,經過本地DNS系統解析,DNS 系統會最終將域名的解析權交給 CNAME 指向的 【CDN專用DNS服務器】。

  2. 【CDN的DNS 服務器】將 【CDN 全局負載均衡設備】 IP 地址返回用戶。

  3. 用戶向 【CDN 全局負載均衡設備】發起內容 URL 訪問請求。

  4. CDN 全局負載均衡設備根據用戶 IP 地址,以及用戶請求的內容URL,選擇一台用戶所屬區域的【區域負載均衡設備】,告訴用戶向這台設備發起請求。

  5. 基於以下這些條件的綜合分析之后,區域負載均衡設備會向全局負載均衡設備返回一台緩存服務器的IP地址:

    • 根據用戶 IP 地址,判斷哪一台服務器距用戶最近;

    • 根據用戶所請求的 URL 中攜帶的內容名稱,判斷哪一台服務器上有用戶所需內容;

    • 查詢各個服務器當前的負載情況,判斷哪一台服務器尚有服務能力。

  6. 【全局負載均衡設備】把服務器的 IP 地址返回給用戶。

  7. 用戶向【緩存服務器】發起請求。如果這台緩存服務器上並沒有用戶想要的內容,而區域均衡設備依然將它分配給用戶,那么這台服務器就要向它的上一級緩存服務器請求內容,直至追溯到網站的源服務器將內容拉到本地。

 

CDN節點的緩存內容不實時更新,只有當緩存內容到期后才能回源拉取最新的內容。當您的源站內容更新后,如果希望用戶可以獲取到最新內容,您可以通過緩存刷新功能將CDN緩存強制過期;如果CDN邊緣節點需要及時更新此內容,先將此內容刷新,再將此內容預熱到CDN節點。

緩存刷新:提交緩存刷新請求后,CDN節點的緩存內容將會被強制過期。當用戶向CDN節點請求資源時,CDN會直接回源站拉取對應的資源返回給用戶,並將其緩存。

緩存預熱:提交緩存預熱請求后,源站將會主動將對應的資源緩存到CDN節點。當用戶首次請求時,就能直接從CDN節點緩存中獲取到最新的請求資源,無需再回源站拉取。

     優點:將需要預熱的資源推送到CDN邊緣節點,用戶訪問時將不需要再回源站,可以直接命中緩存。這樣可加快資源的首次訪問,同時緩解突增回源流量給源站造成的壓力。

 

金山雲:https://www.ksyun.com/developer/article/6938.html

1:什么是刷新?淘汰cdn節點上的舊文件,重新獲取文件的新版本。

      什么是預熱?首次發布的文件,主動從源站推送到CDN,讓用戶訪問到CDN時不用回客戶的源站命中。

2:為什么要刷新?
CDN節點緩存的資源沒有過期,但是基於客戶的業務要求,需要更新CDN節點上緩存資源,刷新就是強制刪除CDN節點緩存內容。用戶請求這些資源時,CDN節點需要重新回源拉取資源,保證響應的資源與源站一致。
常見的場景:比如A公司游戲包發布后,發現有bug需要修復,為了降低影響,需要把CDN節點上緩存的舊游戲安裝包都刪除。

刷新類型分為目錄刷新和URL刷新。URL刷新是直接將節點上緩存的資源刪除。對於目錄刷新,會將節點上的文件資源過期,會同源站對比Last-Modified時間,比如節點上的目錄文件的Last-Modified為:Mon, 26 Dec 2018 11:11:00 GMT ,源站文件的Last-Modified為Mon, 28 Dec 2018 11:11:00 GMT.則此時源站會告訴節點:你的文件比我的文件老,我已經更新文件了,快來取最新的資源吧,此時會將源站新的資源更新到節點上,否則,源站返回304,告訴節點,你節點上的資源已經和我源站上的資源是一致,為最新的了,無需更新。

3:為什么要預熱?
   主動從源站推送到CDN,讓用戶訪問到CDN時不用回客戶的源站命中。
xx游戲在9月12日首次開發,游戲玩家搶着開服的時候趕緊下載游戲客戶端(3GB)。如果沒有預熱,第一批玩家在訪問官網下載時,官網CNME記錄解析到CDN。由於是第一次訪問,CDN中緩存也沒有,因此需要回源站去獲取游戲客戶端(3GB)。

影響:
首批下載的用戶體驗很差,因為都集中訪問源站主機,源站主機的CPU利用率和帶寬會跑的很高。第一批玩家下載完成后,CDN中也能夠緩存了一份,第二批玩家下載就直接在CDN中命中,速度比第一批快得多。

但是等CDN緩存好完整一份游戲客戶端,可能半天到1天的時間就過去了。因為第一批下載時,源站壓力非常大,CDN回源的帶寬可能只有幾KB,幾KB的速度下載2GB的文件,可能要好幾天了。那么游戲開服的頭幾天連游戲客戶端都下載不了。
在開服前,通過預熱功能,將游戲安裝包(3GB)從源站推送到各CDN節點,提前先緩存起來。等開服的時候,第一個玩家也能從CDN中快速獲取到游戲安裝包。

 

 

CDN 常用的防盜鏈方式包含IP黑白名單、Referer、時間戳以及中心鑒權進行防盜鏈等方式。

一、IP黑白名單:

這個比較簡單,直接配置請求者的IP黑白名單,設置黑名單之后,除了黑名單的用戶都能訪問;反之設置了白名單,只有白名單的用戶都可以訪問。這個方法直接有效,但必須知道請求者的具體IP信息,所以適用的場景比較有限。

二、Referer防盜鏈:

在http請求時,Referer里記錄的是請求的來路,所以通過設置Referer黑白名單,可以控制哪個頁面或者域名過來的請求是可以訪問的。這個方法比較簡單,因為你很清楚想讓哪個網站或者不想讓哪個網站訪問,但是缺點就是Referer信息可以偽造。

三、時間戳防盜鏈:

時間戳防盜鏈主要是在url請求里,通過增加時間戳的信息來對url加上時間的因素,盜鏈者如果不及時更新url,那么就會無法訪問。這個比較常見,但是如果盜鏈者定期的過來更新url,這種方法也會失效。

四、中心鑒權

中心鑒權的方式等於在源站增加一層驗證,這個方法會對防盜鏈有效,但會增加請求的時間成本,一般用於有對內容進行完全保護的,比如有些視頻網站,需要會員身份才能看的內容,對於這些網站,一般都會做中心鑒權。 

 

CDN常用調度類型

1、DNS調度:智能計算,就近最佳節點為網民提供服務。

2、httpdns:客戶端直接調用HttpDNS接口獲取緩存服務器IP組,再擇優向IP組中的緩存服務器發送請求,替代常規DNS調度策略,適用於客戶端,且客戶端需稍作修改進行HttpDNS接口調用。

3、邊緣302調度:針對因用戶LocalDNS配置錯誤引起的解析錯誤,緩存服務器可根據終端IP進行判斷,並通過302方式響應終端最優緩存服務器IP供終端訪問。適用於大文件下載(因多一次302跳轉網絡延時,對小文件下載不適用)

4、中央302調度:調度服務器接受終端Http請求,可根據終端IP及url請求熱度,將用戶請求通過302方式調度至最優的緩存服務器上進行響應。適用於大文件下載(因多一次302跳轉的網絡延時,對小文件不適用),且需與一致性hash、冷熱分離配合使用。

注:一致性hash、冷熱分離:指同一地區多節點情況下,對文件進行一致性hash,可以將冷文件hash至一個節點集中訪問,提高命中率,將熱文件hash至各個節點,進行熱度均攤。其中,冷熱文件可按比例設置。

 融合CDN

融合CDN是將業務統一起來分別解析到不同的雲平台中,根據業務情況自行進行內容解析與調度。內容解析調度是融合CDN的核心。解決多CDN備災、帶寬用量。

融合CDN基本是通過實時獲知雲平台的網絡質量,在根據質量反饋進行合理的內容的調度處理。


免責聲明!

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



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