回源原理
- 什么是回源?
網(wǎng)上查了下資料咪橙,回源大致是指瀏覽器在發(fā)送請求報(bào)文時甫匹,響應(yīng)該請求報(bào)文的是源站點(diǎn)的服務(wù)器苦银,而不是各節(jié)點(diǎn)上的緩存服務(wù)器,那么這個過程相對于通過各節(jié)點(diǎn)上的緩存服務(wù)器來響應(yīng)的話就稱作為回源左敌。回源的請求或流量太多的話,有可能會讓源站點(diǎn)的服務(wù)器承載著過大的訪問壓力瓦宜,進(jìn)而影響服務(wù)的正常訪問。
- 如何計(jì)算回源比岭妖?
其實(shí)回源比和緩存的命中率正好相反临庇,回源比高,說明緩存系統(tǒng)的緩存命中率低昵慌〖俣幔回源比分為回源請求數(shù)比例和回源流量比例兩種。
回源請求數(shù)比例:收集所有邊緣節(jié)點(diǎn)上的請求記錄斋攀,沒有緩存或緩存過期的請求以及不可緩存的請求均被作為回源請求已卷,發(fā)往源站點(diǎn)服務(wù)器響應(yīng)。其他的請求則由緩存系統(tǒng)直接使用緩存響應(yīng)蜻韭。其計(jì)算公式為:回源請求數(shù)/(回源請求數(shù)+用戶發(fā)送的請求數(shù))
悼尾。
回源流量比:即用戶所產(chǎn)生的流量當(dāng)中,有多少流量是直接有源站點(diǎn)服務(wù)器響應(yīng)的肖方,其計(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)定。CDN通過在網(wǎng)絡(luò)邊緣部署邊緣服務(wù)器,依靠CDN中心平臺的負(fù)載均衡泡仗、內(nèi)容分發(fā)及調(diào)度等功能埋虹,使用戶就近獲取所需的內(nèi)容,降低網(wǎng)絡(luò)擁堵娩怎,提高用戶訪問響應(yīng)速度和命中率搔课。所以基本上CDN就是廣泛采用各種緩存服務(wù)器,使得用戶的請求直接由這些緩存服務(wù)器響應(yīng)截亦,加快了響應(yīng)速度爬泥;只有在用戶請求的資源在緩存服務(wù)器上沒有找到或者請求訪問的資源在源站點(diǎn)服務(wù)器上已經(jīng)修改過的情況下,緩存服務(wù)器才會去訪問源站點(diǎn)服務(wù)器以獲取最新的資源崩瓤。
下圖為常見的CDN架構(gòu):
在CDN環(huán)境下袍啡,web訪問數(shù)據(jù)通常會經(jīng)歷客戶端本地緩存和CDN邊緣節(jié)點(diǎn)緩存兩個階段。如果這兩個階段均無法響應(yīng)客戶的請求的話却桶,那么最后會由CDN節(jié)點(diǎn)向源站點(diǎn)發(fā)起回源請求境输,進(jìn)而從源站點(diǎn)獲取最新的數(shù)據(jù),更新CDN節(jié)點(diǎn)的本地緩存颖系,最后將最新的數(shù)據(jù)返回給客戶端嗅剖。
CDN節(jié)點(diǎn)的緩存機(jī)制也是遵循h(huán)ttp協(xié)議,因此也會受到Cache-Control等字段的影響集晚。與此同時窗悯,CDN上的緩存時間的長短會對回源率產(chǎn)生直接的影響区匣。若CDN緩存時間較短偷拔,CDN邊緣節(jié)點(diǎn)上的數(shù)據(jù)會經(jīng)常失效,導(dǎo)致頻繁回源亏钩,增加了源站的負(fù)載莲绰,同時也增大的訪問延時;若CDN緩存時間太長姑丑,會帶來數(shù)據(jù)更新時間慢的問題蛤签。因此開發(fā)者需要增對特定的業(yè)務(wù),來做特定的數(shù)據(jù)緩存時間管理栅哀。