溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

CDN回源原理和CDN多級(jí)緩存是什么

發(fā)布時(shí)間:2021-07-14 15:14:08 來源:億速云 閱讀:306 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“CDN回源原理和CDN多級(jí)緩存是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“CDN回源原理和CDN多級(jí)緩存是什么”吧!


 

CDN回源

 

回源原理

  • 回源是指瀏覽器在發(fā)送請(qǐng)求報(bào)文時(shí),響應(yīng)該請(qǐng)求報(bào)文的是源站點(diǎn)的服務(wù)器,而不是各節(jié)點(diǎn)上的緩存服務(wù)器(比如nginx開啟緩存),那么這個(gè)過程相對(duì)于通過各節(jié)點(diǎn)上的緩存服務(wù)器來響應(yīng)的話就稱作為回源?;卦吹恼?qǐng)求或流量太多的話,有可能會(huì)讓源站點(diǎn)的服務(wù)器承載著過大的訪問壓力,進(jìn)而影響服務(wù)的正常訪問。

  • 回源域名一般是cdn領(lǐng)域的專業(yè)術(shù)語,通常情況下,是直接用ip進(jìn)行回源的,但是如果客戶源站有多個(gè)ip,并且ip地址會(huì)經(jīng)常變化,對(duì)于cdn廠商來說,為了避免經(jīng)常更改配置(回源ip),會(huì)采用回源域名方式進(jìn)行回源,這樣即使源站的ip變化了,也不影響原有的配置。

  • 常規(guī)的CDN都是回源的。即:當(dāng)有用戶訪問某一個(gè)URL的時(shí)候,如果被解析到的那個(gè)CDN節(jié)點(diǎn)沒有緩存響應(yīng)的內(nèi)容,或者是緩存已經(jīng)到期,就會(huì)回源站去獲取。如果沒有人訪問,那么CDN節(jié)點(diǎn)不會(huì)主動(dòng)去源站拿的。

  • 源站內(nèi)容有更新的時(shí)候,源站可以主動(dòng)把內(nèi)容推送到CDN節(jié)點(diǎn)。參考阿里云url預(yù)熱https://help.aliyun.com/knowledge_detail/40106.html?spm=a2c4e.11153987.0.0.419f6ec5UvPSJ1

  • CDN本來是給我們的網(wǎng)站加速的,但是有時(shí)會(huì)因?yàn)椴缓线m的回源策略給服務(wù)器帶來負(fù)擔(dān),只有選擇正確的策略才能給自己的網(wǎng)站帶來更高的訪問效率。

 

CDN回源率計(jì)算方法

回源比分為回源請(qǐng)求數(shù)比例及回源流量比例兩種:

 

回源請(qǐng)求數(shù)比

統(tǒng)計(jì)數(shù)據(jù)來自所有邊緣節(jié)點(diǎn)上的請(qǐng)求記錄,其中,對(duì)于沒有緩存或緩存過期(可緩存)的請(qǐng)求以及不可緩存的請(qǐng)求,均計(jì)入回源請(qǐng)求中,其他直接命中緩存的,則為命中請(qǐng)求。

 

回源流量比

回源流量是回源請(qǐng)求文件大小產(chǎn)生的流量和請(qǐng)求本身產(chǎn)生的流量   回源流量比=回源流量/回源流量+用戶請(qǐng)求訪問的流量

 

CDN常見多級(jí)緩存

 

CDN概念

CDN的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。其基本思路是盡可能避開互聯(lián)網(wǎng)上有可能影響數(shù)據(jù)傳輸速度和穩(wěn)定性的瓶頸和環(huán)節(jié),使內(nèi)容傳輸?shù)母臁⒏€(wěn)定。通過在網(wǎng)絡(luò)各處放置節(jié)點(diǎn)服務(wù)器所構(gòu)成的在現(xiàn)有的互聯(lián)網(wǎng)基礎(chǔ)之上的一層智能虛擬網(wǎng)絡(luò),CDN系統(tǒng)能夠?qū)崟r(shí)地根據(jù)網(wǎng)絡(luò)流量和各節(jié)點(diǎn)的連接、負(fù)載狀況以及到用戶的距離和響應(yīng)時(shí)間等綜合信息將用戶的請(qǐng)求重新導(dǎo)向離用戶最近的服務(wù)節(jié)點(diǎn)上。其目的是使用戶可就近取得所需內(nèi)容,解決 Internet網(wǎng)絡(luò)擁擠的狀況,提高用戶訪問網(wǎng)站的響應(yīng)速度。

 

CDN工作方法

客戶端瀏覽器先檢查是否有本地緩存是否過期,如果過期,則向CDN邊緣節(jié)點(diǎn)發(fā)起請(qǐng)求,CDN邊緣節(jié)點(diǎn)會(huì)檢測用戶請(qǐng)求數(shù)據(jù)的緩存是否過期,如果沒有過期,則直接響應(yīng)用戶請(qǐng)求,此時(shí)一個(gè)完成http請(qǐng)求結(jié)束;如果數(shù)據(jù)已經(jīng)過期,那么CDN還需要向源站發(fā)出回源請(qǐng)求(back to the source request),來拉取最新的數(shù)據(jù)。CDN的典型拓?fù)鋱D如下:

CDN回源原理和CDN多級(jí)緩存是什么

CDN的典型拓?fù)鋱D

 
 

CDN層級(jí)劃分:

  • CDN系統(tǒng)中,直接面向用戶,負(fù)責(zé)給用戶提供內(nèi)容服務(wù)的的Cache設(shè)備都部署在整個(gè) CDN網(wǎng)絡(luò)的邊緣位置,所以將這一層稱為邊緣層。

  • CDN系統(tǒng)中,中心層負(fù)責(zé)全局的管理和控制,同時(shí)也保存了最多的內(nèi)容Cache。在邊緣層設(shè)備未能命中Cache時(shí),需要向中心層設(shè)備請(qǐng)求;而中心層未能命中時(shí),則需要向源站請(qǐng)求。不同的CDN系統(tǒng)設(shè)計(jì)存在差異,中心層可能具備用戶服務(wù)的能力,也可能只會(huì)向下一層提供服務(wù)。

  • 如果CDN系統(tǒng)比較龐大,邊緣層向中心層請(qǐng)求內(nèi)容太多,會(huì)造成中心層負(fù)載壓力太大。此時(shí),需要在中心層和邊緣層之間部署一個(gè)區(qū)域?qū)?,?fù)責(zé)一個(gè)區(qū)域的管理和控制,也可以提供一些內(nèi)容Cache供邊緣層訪問。

 

CDN緩存

瀏覽器本地緩存失效后,瀏覽器會(huì)向CDN邊緣節(jié)點(diǎn)發(fā)起請(qǐng)求。類似瀏覽器緩存,CDN邊緣節(jié)點(diǎn)也存在著一套緩存機(jī)制。

 

CDN緩存的缺點(diǎn)

CDN的分流作用不僅減少了用戶的訪問延時(shí),也減少的源站的負(fù)載。但其缺點(diǎn)也很明顯:當(dāng)網(wǎng)站更新時(shí),如果CDN節(jié)點(diǎn)上數(shù)據(jù)沒有及時(shí)更新,即便用戶再瀏覽器使用Ctrl +F5的方式使瀏覽器端的緩存失效,也會(huì)因?yàn)镃DN邊緣節(jié)點(diǎn)沒有同步最新數(shù)據(jù)而導(dǎo)致用戶訪問異常。

 

CDN緩存策略

  • CDN邊緣節(jié)點(diǎn)緩存策略因服務(wù)商不同而不同,但一般都會(huì)遵循h(huán)ttp標(biāo)準(zhǔn)協(xié)議,通過http響應(yīng)頭中的Cache-control: max-age的字段來設(shè)置CDN邊緣節(jié)點(diǎn)數(shù)據(jù)緩存時(shí)間。

  • 當(dāng)客戶端向CDN節(jié)點(diǎn)請(qǐng)求數(shù)據(jù)時(shí),CDN節(jié)點(diǎn)會(huì)判斷緩存數(shù)據(jù)是否過期,若緩存數(shù)據(jù)并沒有過期,則直接將緩存數(shù)據(jù)返回給客戶端;否則,CDN節(jié)點(diǎn)就會(huì)向源站發(fā)出回源請(qǐng)求,從源站拉取最新數(shù)據(jù),更新本地緩存,并將最新數(shù)據(jù)返回給客戶端。

  • CDN服務(wù)商一般會(huì)提供基于文件后綴、目錄多個(gè)維度來指定CDN緩存時(shí)間,為用戶提供更精細(xì)化的緩存管理。

  • CDN緩存時(shí)間會(huì)對(duì)“回源率”產(chǎn)生直接的影響。若CDN緩存時(shí)間較短,CDN邊緣節(jié)點(diǎn)上的數(shù)據(jù)會(huì)經(jīng)常失效,導(dǎo)致頻繁回源,增加了源站的負(fù)載,同時(shí)也增大的訪問延時(shí);若CDN緩存時(shí)間太長,會(huì)帶來數(shù)據(jù)更新時(shí)間慢的問題。開發(fā)者需要增對(duì)特定的業(yè)務(wù),來做特定的數(shù)據(jù)緩存時(shí)間管理。

 

CDN緩存刷新

CDN邊緣節(jié)點(diǎn)對(duì)開發(fā)者是透明的,相比于瀏覽器Ctrl+F5的強(qiáng)制刷新來使瀏覽器本地緩存失效,開發(fā)者可以通過CDN服務(wù)商提供的“刷新緩存”接口來達(dá)到清理CDN邊緣節(jié)點(diǎn)緩存的目的。這樣開發(fā)者在更新數(shù)據(jù)后,可以使用“刷新緩存”功能來強(qiáng)制CDN節(jié)點(diǎn)上的數(shù)據(jù)緩存過期,保證客戶端在訪問時(shí),拉取到最新的數(shù)據(jù)。

 

到此,相信大家對(duì)“CDN回源原理和CDN多級(jí)緩存是什么”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

cdn
AI