CDN | 明明設(shè)置了30天緩存時(shí)間,為啥還沒到30天就回源了?

image.png

突然朋友問了我個(gè)這樣的問題:明明設(shè)置了30天緩存時(shí)間,為啥還沒到30天就回源了?

相信很多朋友也有這種問題,首先回憶一下CDN的請(qǐng)求流程:

image.png

首次:客戶端 > CDN > CDN > 源站服務(wù)器 > CDN > CDN > 客戶端
后續(xù):客戶端 > CDN > 客戶端

首次請(qǐng)求因?yàn)槲疵芯彺嫠砸皆凑痉?wù)器獲取資源,等CDN服務(wù)器將資源緩存在本地后,后續(xù)客戶端再來請(qǐng)求就由CDN服務(wù)器直接給客戶端了,不用再去源站。

既然都設(shè)置了30天的緩存時(shí)間,那理所應(yīng)當(dāng)是30天之后才會(huì)再次到源站服務(wù)器獲取資源。
其實(shí)這種說法不完全正確,30天是理想最大的過期時(shí)間,不出現(xiàn)意外的情況下,資源在CDN服務(wù)器上是可以緩存30天的。
但是意外總是有的,比如CDN服務(wù)器壞了,里面的數(shù)據(jù)都丟了。后面CDN服務(wù)器搞好重新上線時(shí),里面什么緩存都沒有的,那你再次請(qǐng)求到CDN服務(wù)器是不是就會(huì)回源?

還有以下情況。

  • 一個(gè)地區(qū)可能有多臺(tái)CDN服務(wù)器,你第一次請(qǐng)求的CDN服務(wù)器是A,下次可能請(qǐng)求到的CDN服務(wù)器可能是B,然而CDN服務(wù)器B是沒有緩存的,那這次請(qǐng)求是不是也回源了?(至于為啥CDN服務(wù)器A有緩存,CDN服務(wù)器B會(huì)沒有緩存,這個(gè)問題以后有機(jī)會(huì)再細(xì)講)
  • CDN服務(wù)器的存儲(chǔ)空間有限,已經(jīng)達(dá)到一定的閾值了,CDN服務(wù)器要清理那些請(qǐng)求量較少的資源,將存儲(chǔ)空間騰出來給其他熱門資源使用,等客戶端再次請(qǐng)求也觸發(fā)回源了。(可以理解為CDN服務(wù)器上的資源有末尾淘汰機(jī)制,就好比有些公司會(huì)淘汰掉那些業(yè)績不理想的人,讓出位置給更有能力的人)
  • 資源設(shè)置了30天緩存時(shí)間,只有第一天請(qǐng)求了1次,后面幾天甚至大半個(gè)月都沒有再請(qǐng)求過,然后就一直占著CDN服務(wù)器上的存儲(chǔ)空間,也不產(chǎn)生請(qǐng)求量和流量,CDN服務(wù)器檢測到就會(huì)將這些資源給清理掉了,騰出存儲(chǔ)空間留給其他熱門資源使用。(說難聽點(diǎn),這種就是占著茅坑不拉屎)

除了以上的原因還有其他的,不一一舉例了。

那怎么才能避免出現(xiàn)上面的問題?
CDN服務(wù)器壞掉的問題,這個(gè)沒啥好的辦法;其他三個(gè)問題,主要解決辦法是提升網(wǎng)站的請(qǐng)求量,但也不能徹底解決只能起到緩解而已。
網(wǎng)站每天必須有一定的請(qǐng)求量和流量,讓資源保持熱度,不然資源就有可能被淘汰掉。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容