火云邪神講:天下武功唯快不破!同樣,在現(xiàn)代社會(huì)中,如果做事情不講究速度,那么勢(shì)必會(huì)落后于他人。
而隨著Internet技術(shù)和多媒體技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)服務(wù)已經(jīng)與我們的生活不可分割,例如:移動(dòng)支付、視頻電話……自媒體的發(fā)展,更是讓短視頻服務(wù)成為了每個(gè)上網(wǎng)人的首要選擇。
但是,視頻網(wǎng)站的容量是有限的,在為各地區(qū)的人們提供服務(wù)時(shí),網(wǎng)絡(luò)訪問(wèn)距離過(guò)長(zhǎng)(例如:視頻服務(wù)器在北京,訪問(wèn)的用戶在南京,那么傳輸?shù)木嚯x比較長(zhǎng)),用戶與網(wǎng)站之間的鏈路被突發(fā)的大流量數(shù)據(jù)擁塞(例如:春晚時(shí),全國(guó)十幾億人都同時(shí)接入視頻服務(wù)器,鏈路多了會(huì)導(dǎo)致網(wǎng)絡(luò)通道堵塞),都將導(dǎo)致網(wǎng)絡(luò)負(fù)載迅速增加,從而使用戶的訪問(wèn)質(zhì)量受到嚴(yán)重影響。例如:網(wǎng)頁(yè)登錄延遲、視頻卡頓……
那么,在網(wǎng)絡(luò)世界中,誰(shuí)為我們提供了速度保障呢?那就是我們的幕后英雄:CDN。
01
什么是CDNCDN:Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。
拆開(kāi)解釋:
- 內(nèi)容:指的是靜態(tài)資源。
- 靜態(tài)資源:前端的固定頁(yè)面,無(wú)需查數(shù)據(jù)庫(kù),也不需要程序處理,直接能顯示的頁(yè)面。例如:圖片、視頻、文檔、JS、CS、HTML。
- 分發(fā)網(wǎng)絡(luò):指的是將靜態(tài)資源分發(fā)到不同地理位置的服務(wù)器。
課代表總結(jié):CDN就是將靜態(tài)資源分發(fā)到多個(gè)不同的地方以實(shí)現(xiàn)就近訪問(wèn),進(jìn)而加快靜態(tài)資源的訪問(wèn)速度,減輕服務(wù)器以及帶寬的負(fù)擔(dān)
02
CDN的訪問(wèn)機(jī)制現(xiàn)在,我們已經(jīng)了解了CDN的內(nèi)容。那么,在網(wǎng)絡(luò)上部署了CDN后,用戶訪問(wèn)服務(wù)器時(shí),CDN具體是怎么發(fā)揮作用的呢?
CDN的工作機(jī)制,優(yōu)點(diǎn)類似京東的倉(cāng)儲(chǔ)系統(tǒng)。即提前在各地倉(cāng)庫(kù)儲(chǔ)備好商品,當(dāng)用戶下單后,則直接從用戶所在城市的倉(cāng)庫(kù)發(fā)貨,縮短了物流的時(shí)間。
1. “客戶端”通過(guò)瀏覽器訪問(wèn)服務(wù)器。
2. 瀏覽器調(diào)用域名解析庫(kù)對(duì)域名進(jìn)行解析,得到CDN緩存服務(wù)器的IP地址(即邊緣節(jié)點(diǎn))。
3. 瀏覽器使用得到的IP地址,向緩存服務(wù)器發(fā)出訪問(wèn)請(qǐng)求。(類比為:南京的文檔君在京東上下單購(gòu)買某件商品A)
4. CDN緩存服務(wù)器判斷是否存在已緩存的內(nèi)容,并進(jìn)行對(duì)應(yīng)的操作。(類比為:京東系統(tǒng)查看南京的倉(cāng)儲(chǔ)中心是否有商品A)存在待緩存的內(nèi)容:將對(duì)應(yīng)的數(shù)據(jù)返回給客戶端。(南京的
倉(cāng)儲(chǔ)中心有商品A,則直接從南京倉(cāng)儲(chǔ)中心發(fā)貨給南京的文檔君)不存在待緩存的內(nèi)容或待緩存的內(nèi)容失效:緩存服務(wù)器從實(shí)際IP地址(即中心節(jié)點(diǎn))獲取內(nèi)容。獲取內(nèi)容后,一方面在本地進(jìn)行保存,以備以后使用,另一方面把獲取的數(shù)據(jù)返回給客戶端,完成數(shù)據(jù)服務(wù)過(guò)程。(南京的倉(cāng)儲(chǔ)中心沒(méi)有商品A,則從總倉(cāng)儲(chǔ)中心發(fā)貨給南京的文檔君)說(shuō)明:邊緣節(jié)點(diǎn)緩存的內(nèi)容可通過(guò)CDN緩存配置進(jìn)行維護(hù), 且若中心節(jié)點(diǎn)的發(fā)生變化,則緩存服務(wù)器中對(duì)應(yīng)的內(nèi)容失效。
5. “客戶端”得到由緩存服務(wù)器返回的數(shù)據(jù)以后顯示出來(lái)并完成整個(gè)瀏覽的數(shù)據(jù)請(qǐng)求過(guò)程。
03
CDN的架構(gòu)CDN的網(wǎng)絡(luò)架構(gòu)由節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)包括高速緩存服務(wù)器(Cache)和負(fù)載均衡設(shè)備。
CDN網(wǎng)絡(luò)架構(gòu)的三種節(jié)點(diǎn):
- 中心節(jié)點(diǎn):指CDN網(wǎng)管中心和DNS重定向解析中心負(fù)責(zé)全局負(fù)載均衡和內(nèi)容管理,設(shè)備系統(tǒng)安裝在管理中心機(jī)房(即視頻網(wǎng)站的主服務(wù)器)。存儲(chǔ)所有內(nèi)容,為邊緣節(jié)點(diǎn)未命中的用戶提供服務(wù)。例如:深圳。區(qū)域中心節(jié)點(diǎn):可按要求存儲(chǔ)全部或部分內(nèi)容,為邊緣節(jié)點(diǎn)未命中的用戶提供服務(wù)。例如:南京。邊緣節(jié)點(diǎn):指異地節(jié)點(diǎn),CDN分發(fā)的載體,就近為用戶提供流媒體服務(wù)。例如:南京的雨花臺(tái)區(qū)。
每個(gè)節(jié)點(diǎn)的組成:
-
- 高速緩存服務(wù)器(Cache):負(fù)責(zé)存儲(chǔ)客戶網(wǎng)站的大量信息,就像一個(gè)靠近用戶的網(wǎng)站服務(wù)器一樣響應(yīng)本地用戶的訪問(wèn)請(qǐng)求。負(fù)載均衡設(shè)備:負(fù)責(zé)每個(gè)節(jié)點(diǎn)中各個(gè)Cache的負(fù)載均衡,保證節(jié)點(diǎn)的工作效率;同時(shí),負(fù)載均衡設(shè)備還負(fù)責(zé)收集節(jié)點(diǎn)與周圍環(huán)境的信息,保持與全局負(fù)載DNS的通信,實(shí)現(xiàn)整個(gè)系統(tǒng)的負(fù)載均衡。
CDN的網(wǎng)絡(luò)架構(gòu)有三種模式:
-
- 二級(jí)架構(gòu)
三級(jí)架構(gòu)
混合架構(gòu)
混合組網(wǎng)架構(gòu)是二級(jí)組網(wǎng)架構(gòu)和三級(jí)組網(wǎng)架構(gòu)的結(jié)合。在該區(qū)域的用戶發(fā)展規(guī)模較小時(shí),暫時(shí)采用邊緣節(jié)點(diǎn)和中心節(jié)點(diǎn)二級(jí)架構(gòu)提供服務(wù)。隨著用戶數(shù)量的發(fā)展,當(dāng)該區(qū)域的用戶規(guī)模達(dá)到一定數(shù)量時(shí),添加區(qū)域中心節(jié)點(diǎn),為該區(qū)域提供三級(jí)架構(gòu)服務(wù)。
結(jié)語(yǔ)
關(guān)于CDN的內(nèi)容就講這么多了,一句話秒懂總結(jié):CDN其實(shí)就是一個(gè)幕后英雄,他承擔(dān)的是搬運(yùn)工的工作,即提前將內(nèi)容搬運(yùn)到我們附近,讓我們能盡快獲取對(duì)應(yīng)的內(nèi)容。