CDN 的快取與回源機制解析

2021-10-01 12:39:10 字數 2035 閱讀 8218

cdn (content delivery network,即內容分發網路)指的是一組分布在各個地區的伺服器。這些伺服器儲存著資料的副本,因此伺服器可以根據哪些伺服器與使用者距離最近,來滿足資料的請求。 cdn 提供快速服務,較少受高流量影響。

cdn 的核心點有兩個,乙個是快取,乙個是回源

cdn 往往被用來存放靜態資源

「根伺服器」本質上是業務伺服器,它的核心任務在於生成"動態頁面"或返回"非純靜態頁面"(需要計算的)。業務伺服器彷彿乙個車間,車間裡運轉的機器轟鳴著為我們產出所需的資源;相比之下,cdn 伺服器則像乙個倉庫,它只充當資源的「棲息地」和「搬運工」。

所謂靜態資源,就是像 js、css、等不需要業務伺服器進行計算即得的資源。而動態資源,顧名思義是需要後端實時動態生成的資源,較為常見的就是 jsp、asp 或者依賴服務端渲染得到的 html 頁面。

什麼是非純靜態資源呢?它是指需要伺服器在頁面之外作額外計算的 html 頁面。具體來說,當我開啟某一**之前,該**需要通過許可權認證等一系列手段確認我的身份、進而決定是否要把 html 頁面呈現給我。這種情況下 html 確實是靜態的,但它和業務伺服器的操作耦合,我們把它丟到cdn 上顯然是不合適的。

靜態資源本身具有訪問頻率高、承接流量大的特點,因此靜態資源載入速度始終是前端效能的乙個非常關鍵的指標。

首先,cdn伺服器網域名稱與業務伺服器網域名稱不一致。

例如**,業務伺服器網域名稱為「www.taobao.com」,而cdn 伺服器的網域名稱是「g.alicdn.com」

cookie 是緊跟網域名稱的。同乙個網域名稱下的所有請求,都會攜帶 cookie。大家試想,如果我們此刻僅僅是請求一張或者乙個 css 檔案,我們也要攜帶乙個 cookie 跑來跑去(關鍵是 cookie 裡儲存的資訊我現在並不需要),這是一件多麼勞民傷財的事情。cookie 雖然小,請求卻可以有很多,隨著請求的疊加,這樣的不必要的 cookie 帶來的開銷將是很大的。

同乙個網域名稱下的請求會不分青紅皂白地攜帶 cookie,而靜態資源往往並不需要 cookie 攜帶什麼認證資訊。把靜態資源和主頁面置於不同的網域名稱下,完美地避免了不必要的 cookie 的出現!

從功能上看,典型的cdn系統由分發服務系統,負載均衡系統和運營管理系統組成。

分發服務系統

最基本的工作單元就是cache裝置,cache(邊緣cache)負責直接響應終端使用者的訪問請求,把快取在本地的內容快速地提供給使用者。同時cache還負責與源站點進行內容同步,把更新的內容以及本地沒有的內容從源站點獲取並儲存在本地,(webhook)。cache裝置的數量、規模、總服務能力是衡 量乙個cdn系統服務能力的最基本的指標。

負載均衡系統

主要功能是負責對所有發起服務請求的使用者進行訪問排程,確定提供給使用者的最終實際訪問位址。兩級排程體系分為全域性負載均衡(gslb)和本 地負載均衡(slb)。gslb主要根據使用者就近性原則,通過對每個服務節點進行「最優」判斷,確定向使用者提供服務的cache的物理位置。slb主要負責節點內部的裝置負載均衡。

運營管理系統

分為運營管理和網路管理子系統,負責處理業務層面的與外界系統互動所必須的收集、整理、交付工作,包含客戶管理、產品管理、計費管理、統計分析等功能。

負責為使用者提供內容服務的cache裝置應部署在物理上的網路邊緣位置,即cdn邊緣層。cdn系統中負責全域性性管理和控制的裝置組成中心層(二級快取),中心層同時儲存著最多的內容副本,當邊緣層裝置未命中時,會向中心層請求,如果在中心層仍未命中,則需要中心層向源站 回源(如果是流**,代價很大)。

cdn骨幹點和cdn pop點在功能上不同,中心和區域節點一般稱為骨幹點,主要作為內容分發和邊緣未命中時的服務點;邊緣節點又被稱為pop(point of presence)節點,cdn pop點主要作為直接向使用者提供服務的節點。

CDN的快取與回源機制解析

cdn content delivery network,內容分發網路 指的是一組分布在各個地區的伺服器。這些伺服器儲存著資料的副本,因此伺服器可以根據哪些伺服器與使用者距離更近,來滿足資料的請求。cdn提供快速服務,較少受高流量影響。快取 本地儲存帶來的效能提公升,是不是只能在 獲取到資源並把它們...

cdn回源php 小談CDN回源函式計算的應用場景

cdn團隊聯合函式計算團隊近期推出了乙個全新功能,即通過cdn把回源流量指向函式計算進行處理,該功能旨在幫助cdn使用者能通過函式計算快速處理和便捷處理回源資料為目的,使用者僅僅需要在cdn回源位址填寫函式計算的自定義網域名稱即可把請求 到函式計算進行處理,配置簡單,費用低廉,先前cdn回源可以設定...

簡述回源原理和CDN常見多級快取

1 回源原理 2 cdn回源率計算方法 回源比分為回源請求數比例及回源流量比例兩種 1 cdn概念 2 cdn工作方法 cdn的典型拓撲圖 3 cdn層級劃分 4 cdn快取 瀏覽器本地快取失效後,瀏覽器會向cdn邊緣節點發起請求。類似瀏覽器快取,cdn邊緣節點也存在著一套快取機制。5 cdn快取的...