CDN網(wǎng)絡(luò)加速
前言
CDN
CDN架構(gòu)
客戶端如何訪問(wèn)
往期推薦
前言
之前記錄過(guò)關(guān)于DNS的內(nèi)容,[DNS域名解析系統(tǒng)],不熟悉的同學(xué)可以點(diǎn)擊進(jìn)去看一下。
那跟今天記錄的內(nèi)容有關(guān)系嗎?沒(méi)關(guān)系
今天記錄的內(nèi)容是什么,是CDN,看百科的介紹:

如果按照之前的單地點(diǎn)部署方式,那么所有流量都會(huì)請(qǐng)求到那個(gè)地方,而且有些請(qǐng)求的距離相當(dāng)遠(yuǎn),比如您現(xiàn)在訪問(wèn)github,距離最近的服務(wù)器好像是在新加坡,那么一個(gè)請(qǐng)求就要跨越幾千上萬(wàn)公里,中間耗時(shí)不言而喻。
我經(jīng)常訪問(wèn)github的時(shí)候會(huì)很慢,有時(shí)候倉(cāng)庫(kù)都check不下來(lái)
由于有這些情況,所以CDN出現(xiàn)了。
CDN
CDN 和分布式倉(cāng)儲(chǔ)系統(tǒng)一樣,分為中心節(jié)點(diǎn)、區(qū)域節(jié)點(diǎn)、邊緣節(jié)點(diǎn),而數(shù)據(jù)緩存在離用戶最近的位置。
在數(shù)據(jù)中心部署一個(gè)用于緩存的集群來(lái)緩存部分?jǐn)?shù)據(jù),當(dāng)訪問(wèn)數(shù)據(jù)時(shí),就可以進(jìn)行就近訪問(wèn)。
分布在各個(gè)地方的各個(gè)數(shù)據(jù)中心的節(jié)點(diǎn),稱為邊緣節(jié)點(diǎn)
當(dāng)用戶訪問(wèn)網(wǎng)站時(shí),利用全局負(fù)載技術(shù),將用戶的訪問(wèn)指向距離最近的緩存服務(wù)器上,由緩存服務(wù)器響應(yīng)用戶請(qǐng)求。
由于邊緣節(jié)點(diǎn)數(shù)目較多,但每個(gè)集群規(guī)模較小,不可能緩存所有東西,所以可能無(wú)法命中,所以在邊緣節(jié)點(diǎn)之上由區(qū)域節(jié)點(diǎn),規(guī)模較大,緩存數(shù)據(jù)更多,命中概率更大,區(qū)域節(jié)點(diǎn)之上時(shí)中心節(jié)點(diǎn),規(guī)模更大,緩存數(shù)據(jù)更多。如果還無(wú)法命中,只好回源網(wǎng)站訪問(wèn)。
CDN擅長(zhǎng)的是緩存靜態(tài)數(shù)據(jù),也即是像css、html、圖片等數(shù)據(jù)
CDN架構(gòu)

客戶端如何訪問(wèn)
沒(méi)有CDN時(shí):

在沒(méi)有CDN時(shí),會(huì)訪問(wèn)本地DNS,然后遞歸根DNS至權(quán)威DNS服務(wù)器獲取IP地址。
直接進(jìn)行訪問(wèn)
有CDN時(shí):

有CND后,會(huì)先訪問(wèn)web.com權(quán)威DNS服務(wù)器,設(shè)置一個(gè)CNAME別名,指向另一個(gè)域名www.web.cdn.com,返回給本地DNS服務(wù)器
當(dāng)本地 DNS 服務(wù)器拿到這個(gè)新的域名時(shí),需要繼續(xù)解析這個(gè)新的域名。這個(gè)時(shí)候,再訪問(wèn)的就不是 web.com 的權(quán)威 DNS 服務(wù)器了,而是 web.cdn.com 的權(quán)威 DNS 服務(wù)器,這是 CDN 自己的權(quán)威 DNS 服務(wù)器。在這個(gè)服務(wù)器上,還是會(huì)設(shè)置一個(gè) CNAME,指向另外一個(gè)域名,也即 CDN 網(wǎng)絡(luò)的全局負(fù)載均衡器。
接下來(lái),本地 DNS 服務(wù)器去請(qǐng)求 CDN 的全局負(fù)載均衡器解析域名,全局負(fù)載均衡器會(huì)為用戶選擇一臺(tái)合適的緩存服務(wù)器提供服務(wù),選擇的依據(jù)包括:
根據(jù)用戶 IP 地址,判斷哪一臺(tái)服務(wù)器距用戶最近; 用戶所處的運(yùn)營(yíng)商; 根據(jù)用戶所請(qǐng)求的 URL 中攜帶的內(nèi)容名稱,判斷哪一臺(tái)服務(wù)器上有用戶所需的內(nèi)容; 查詢各個(gè)服務(wù)器當(dāng)前的負(fù)載情況,判斷哪一臺(tái)服務(wù)器尚有服務(wù)能力。
基于以上這些條件,進(jìn)行綜合分析之后,全局負(fù)載均衡器會(huì)返回一臺(tái)緩存服務(wù)器的 IP 地址。
往期推薦:
瀏覽器發(fā)起HTTP請(qǐng)求后經(jīng)歷了什么?
推薦一個(gè)生產(chǎn)環(huán)境問(wèn)題排查利器
