摘要:維基百科的基本工作過程最簡單的網(wǎng)絡(luò)是由一臺服務(wù)器和多臺緩存服務(wù)器構(gòu)成。用戶向緩存服務(wù)器發(fā)起請求,緩存服務(wù)器響應(yīng)用戶請求,將用戶所需內(nèi)容傳送到用戶終端。
前言
這段時間,在工作中遇到了一個CDN導(dǎo)致的圖片資源加載的錯誤,在排查問題的過程中,發(fā)現(xiàn)自己對CDN的了解非常的片面,僅僅停留在它能緩存靜態(tài)資源,提升訪問速度的了解中。所以覺得還是非常有必要深入去了解下。
什么是CDN?CDN的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò),是指一種通過互聯(lián)網(wǎng)互相連接的電腦網(wǎng)絡(luò)系統(tǒng),利用最靠近每位用戶的服務(wù)器,更快、更可靠地將音樂、圖片、視頻、應(yīng)用程序及其他文件發(fā)送給用戶,來提供高性能、可擴展性及低成本的網(wǎng)絡(luò)內(nèi)容傳遞給用戶。————維基百科
CDN的基本工作過程最簡單的CDN網(wǎng)絡(luò)是由一臺CDN服務(wù)器和多臺緩存服務(wù)器構(gòu)成。
主要工作過程為:
當(dāng)用戶點擊網(wǎng)站頁面上的內(nèi)容URL,經(jīng)過本地DNS系統(tǒng)解析,DNS系統(tǒng)會最終將域名的解析權(quán)交給CNAME指向的CDN專用DNS服務(wù)器。
DN的DNS服務(wù)器將CDN的全局負(fù)載均衡設(shè)備IP地址返回用戶。
用戶向CDN的全局負(fù)載均衡設(shè)備發(fā)起內(nèi)容URL訪問請求。
CDN全局負(fù)載均衡設(shè)備根據(jù)用戶IP地址,以及用戶請求的內(nèi)容URL,選擇一臺用戶所屬區(qū)域的區(qū)域負(fù)載均衡設(shè)備,告訴用戶向這臺設(shè)備發(fā)起請求。
區(qū)域負(fù)載均衡設(shè)備會為用戶選擇一臺合適的緩存服務(wù)器提供服務(wù),選擇的依據(jù)包括:根據(jù)用戶IP地址,判斷哪一臺服務(wù)器距用戶最近;根據(jù)用戶所請求的URL中攜帶的內(nèi)容名稱,判斷哪一臺服務(wù)器上有用戶所需內(nèi)容;查詢各個服務(wù)器當(dāng)前的負(fù)載情況,判斷哪一臺服務(wù)器尚有服務(wù)能力。基于以上這些條件的綜合分析之后,區(qū)域負(fù)載均衡設(shè)備會向全局負(fù)載均衡設(shè)備返回一臺緩存服務(wù)器的IP地址。
全局負(fù)載均衡設(shè)備把服務(wù)器的IP地址返回給用戶。
用戶向緩存服務(wù)器發(fā)起請求,緩存服務(wù)器響應(yīng)用戶請求,將用戶所需內(nèi)容傳送到用戶終端。如果這臺緩存服務(wù)器上并沒有用戶想要的內(nèi)容,而區(qū)域均衡設(shè)備依然將它分配給了用戶,那么這臺服務(wù)器就要向它的上一級緩存服務(wù)器請求內(nèi)容,直至追溯到網(wǎng)站的源服務(wù)器將內(nèi)容拉到本地。
為什么需要CDN根本上的原因是訪問速度,訪問速度對互聯(lián)網(wǎng)應(yīng)用的用戶體驗,甚至說各種指標(biāo)(DAU,PV,UV,營收...)都有巨大的影響,任何的互聯(lián)網(wǎng)企業(yè)都渴望自己站點有更快的訪問速度和更好的用戶體驗。而HTTP傳輸時延對web的訪問速度的影響很大(HTTPS更耗時),在絕大多數(shù)情況下是起決定性作用的,這是由TCP/IP協(xié)議的一些特點決定的。
想要提高訪問速度,最直接的做法就是多部署幾個服務(wù)器在不同的地方,讓當(dāng)前訪問用戶更靠近服務(wù)器。但是多設(shè)置幾個服務(wù)器又會有其他亂七八糟的問題(異地部署,訪問一致性,服務(wù)管理,成本變高等等)。
這個時候就體現(xiàn)出CDN的作用了。CDN本身是一種公共服務(wù),他本身有很多臺位于不同地域、接入不同運營商的服務(wù)器,而所謂的使用CDN實質(zhì)上就是讓CDN作為網(wǎng)站的門面,用戶訪問到的是CDN服務(wù)器,而不是直接訪問到網(wǎng)站。由于CDN內(nèi)部對TCP的優(yōu)化、對靜態(tài)資源的緩存、預(yù)取,加上用戶訪問CDN時,會被智能地分配到最近的節(jié)點,降低大量延遲,讓訪問速度可以得到很大提升。
最后掌握CDN工作流程或者基本的原理這種知識,對于一個前端來說,在甩鍋的時候更方便。當(dāng)然最主要是為了解決工作中的問題。
感謝知乎關(guān)于CDN的回答
深度剖析:CDN內(nèi)容分發(fā)網(wǎng)絡(luò)技術(shù)原理
維基百科、百度百科
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/52469.html
摘要:真正要做高性能的系統(tǒng),不僅需要在數(shù)據(jù)結(jié)構(gòu)與算法層面深入,更要從硬件操作系統(tǒng)文件系統(tǒng)底層原理等多個領(lǐng)域做更多的研究例如阿里云自研的系統(tǒng)使用了裸盤技術(shù)。 《CDN之我見》共由三個篇章組成,分為原理篇、詳解篇和隕坑篇。本篇章適合那些從未接觸過、或僅了解一些 CDN 專業(yè)術(shù)語,想深入了解和感受 CDN 究竟是什么的同學(xué)。本次由白金老師繼續(xù)為大家分享《CDN之我見》系列二,主要講解緩存是什么、工...
摘要:真正要做高性能的系統(tǒng),不僅需要在數(shù)據(jù)結(jié)構(gòu)與算法層面深入,更要從硬件操作系統(tǒng)文件系統(tǒng)底層原理等多個領(lǐng)域做更多的研究例如阿里云自研的系統(tǒng)使用了裸盤技術(shù)。 《CDN之我見》共由三個篇章組成,分為原理篇、詳解篇和隕坑篇。本篇章適合那些從未接觸過、或僅了解一些 CDN 專業(yè)術(shù)語,想深入了解和感受 CDN 究竟是什么的同學(xué)。本次由白金老師繼續(xù)為大家分享《CDN之我見》系列二,主要講解緩存是什么、工...
摘要:一團(tuán)隊組織網(wǎng)站說明騰訊團(tuán)隊騰訊前端團(tuán)隊,代表作品,致力于前端技術(shù)的研究騰訊社交用戶體驗設(shè)計,簡稱,騰訊設(shè)計團(tuán)隊網(wǎng)站騰訊用戶研究與體驗設(shè)計部百度前端研發(fā)部出品淘寶前端團(tuán)隊用技術(shù)為體驗提供無限可能凹凸實驗室京東用戶體驗設(shè)計部出品奇舞團(tuán)奇虎旗下前 一、團(tuán)隊組織 網(wǎng)站 說明 騰訊 AlloyTeam 團(tuán)隊 騰訊Web前端團(tuán)隊,代表作品WebQQ,致力于前端技術(shù)的研究 ISUX 騰...
閱讀 3154·2021-11-22 12:01
閱讀 3775·2021-08-30 09:46
閱讀 789·2019-08-30 13:48
閱讀 3219·2019-08-29 16:43
閱讀 1667·2019-08-29 16:33
閱讀 1855·2019-08-29 13:44
閱讀 1419·2019-08-26 13:45
閱讀 2236·2019-08-26 11:44