典型的cdn系統由下面三個部分組成:
最基本的工作單元就是cache裝置,cache(邊緣cache)負責直接響應終端使用者的訪問請求,把快取在本地的內容快速地提供給使用者。同時cache還負責與源站點進行內容同步,把更新的內容以及本地沒有的內容從源站點獲取並儲存在本地。cache裝置的數量、規模、總服務能力是衡量乙個cdn系統服務能力的最基本的指標。
主要功能是負責對所有發起服務請求的使用者進行訪問排程,確定提供給使用者的最終實際訪問位址。兩級排程體系分為全域性負載均衡(gslb)和本地負載均衡(slb)。全域性負載均衡主要根據使用者就近性原則,通過對每個服務節點進行「最優」判斷,確定向使用者提供服務的cache的物理位置。本地負載均衡主要負責節點內部的裝置負載均衡
分為運營管理和網路管理子系統,負責處理業務層面的與外界系統互動所必須的收集、整理、交付工作,包含客戶管理、產品管理、計費管理、統計分析等功能。
(1)在效能方面,引入cdn的作用在於:
(2)在安全方面,cdn有助於防禦ddos、mitm等網路攻擊:
除此之外,cdn作為一種基礎的雲服務,同樣具有資源託管、按需擴充套件(能夠應對流量高峰)等方面的優勢。
cdn和dns有著密不可分的聯絡,先來看一下dns的解析網域名稱過程,我們以瀏覽器輸入www.test.com為例,
(1) 檢查瀏覽器快取
(2)檢查作業系統快取,常見的如hosts檔案
(3)檢查路由器快取
(4)如果前幾步都沒沒找到,會向isp(網路服務提供商)的ldns伺服器查詢
(5)如果ldns伺服器沒找到,會向根網域名稱伺服器(root server)請求解析,分為以下幾步:
下面就來看一下cdn的工作原理:
(1)使用者在未使用cdn快取資源的過程:
(2)使用者在使用cdn快取資源的過程:
如果快取伺服器沒有使用者想要的內容,那麼快取伺服器就會向它的上一級快取伺服器請求內容,以此類推,直到獲取到需要的資源。最後如果還是沒有,就會回到自己的伺服器去獲取資源。
cname(意為:別名):
在網域名稱解析中,實際上解析出來的指定網域名稱對應的ip位址,或者該網域名稱的乙個cname,然後再根據這個cname來查詢對應的ip位址。
如果想要開源一些專案,可以使用第三方的cdsn服務,例如:
直播本質上是使用流**進行傳送,cdn也是支援流**傳送的,所以直播完全可以使用cdn來提高訪問速度。cdn在處理流**的時候與處理普通靜態檔案有所不同,普通檔案如果在邊緣節點沒有找到的話,就會去上一層接著尋找,但是流**本身資料量就非常大,如果使用回源的方式,必然會帶來效能問題,所以流**一般採用的都是主動推送的方式來進行。
使用CDN加速優化前端效能
cdn content distribute network 內容分發網路的本質仍然是乙個快取,而且將資料快取在離使用者最近的地方,使使用者以最快的速度獲取資料,即所謂網路訪問的第一跳。由於cdn部署在網路運營商的機房,這些機房又是終端使用者網路的服務提供商,因此使用者請求路由的第一條就到達了cdn...
Web前端效能優化之CDN加速
1 什麼是cdn?在介紹cdn加速之前,我們先來簡單的了解一下什麼是cdn?cdn content delivery network 即內容分發網路,其基本思路是盡可能的避開網際網路上有可能影響資料傳輸速度和穩定性的瓶頸和環節,使內容傳輸更快 更穩定。通過在網路各處放置節點伺服器所構成的現有網際網路...
2018前端效能優化原理
dom 為什麼這麼慢?當我們用 js 去操作 dom 時,本質上是 js 引擎和渲染引擎之間進行了 跨界交流 這個 跨界交流 的實現並不簡單,它依賴了橋接介面作為 橋梁 如下圖 過 橋 要收費 這個開銷本身就是不可忽略的。我們每操作一次 dom 不管是為了修改還是僅僅為了訪問其值 都要過一次 橋 過...