Content Delivery Network灯蝴,內(nèi)容分發(fā)網(wǎng)絡(luò)。
簡(jiǎn)介
依靠部署在各地的邊緣服務(wù)器孝宗,通過(guò)中心平臺(tái)的負(fù)載均衡穷躁、內(nèi)容分發(fā)、調(diào)度等功能因妇,使用戶(hù)就近獲取所需內(nèi)容问潭,提高用戶(hù)訪問(wèn)響應(yīng)速度和命中率。
舉個(gè)簡(jiǎn)單的例子:讓原本上海的瀏覽器要訪問(wèn)北京主站內(nèi)容的請(qǐng)求婚被,轉(zhuǎn)而由部署在上航泼Γ或其他地方的緩存來(lái)受理,這樣請(qǐng)求的數(shù)據(jù)只需要經(jīng)過(guò)很短的距離就能夠到達(dá)請(qǐng)求端址芯,有效利用帶寬并降低主站壓力去枷。
工作原理
CDN網(wǎng)絡(luò)一般分為中心節(jié)點(diǎn)和邊緣節(jié)點(diǎn)
中心節(jié)點(diǎn)功能:監(jiān)控邊緣節(jié)點(diǎn)的情況(可用性,擁塞程度),全局負(fù)載均衡管理删顶,與主站點(diǎn)進(jìn)行數(shù)據(jù)同步
CDN工作原理:
瀏覽器訪問(wèn)一個(gè)網(wǎng)站所經(jīng)歷的步驟
未加CDN緩存的網(wǎng)站
用戶(hù)在瀏覽器地址欄輸入要訪問(wèn)的域名
瀏覽器解析域名得到對(duì)應(yīng)的IP地址,再向此IP地址的服務(wù)器發(fā)出訪問(wèn)請(qǐng)求
瀏覽器根據(jù)服務(wù)器返回的東西顯示網(wǎng)頁(yè)內(nèi)容
加CDN緩存的網(wǎng)站
用戶(hù)在瀏覽器中輸入要訪問(wèn)的域名
瀏覽器對(duì)域名解析淑廊,(CDN對(duì)域名解析過(guò)程進(jìn)行了調(diào)整)得到該域名的CNAME記錄逗余,然后利用全局的負(fù)載均衡DNS解析得到實(shí)際的IP地址
瀏覽器在得到了實(shí)際的IP地址(緩存服務(wù)器的IP)后向緩存服務(wù)器發(fā)出訪問(wèn)請(qǐng)求
緩存服務(wù)器根據(jù)瀏覽器提供的要訪問(wèn)的域名通過(guò)DNS解析得到該域名對(duì)應(yīng)的實(shí)際的IP地址,然后該緩存服務(wù)器向此實(shí)際IP地址提交訪問(wèn)請(qǐng)求
緩存服務(wù)器從實(shí)際IP地址得到內(nèi)容后季惩,進(jìn)行兩個(gè)操作:
將得到的內(nèi)容保存到本地录粱,以便以后使用
將獲取的內(nèi)容返回給客戶(hù)端,完成數(shù)據(jù)服務(wù)過(guò)程
示例:
如圖所示:
瀏覽器訪問(wèn)站點(diǎn)的步驟:
用戶(hù)在瀏覽器的地址欄中輸入www.web.com画拾,然后回車(chē)啥繁,瀏覽器發(fā)現(xiàn)本地?沒(méi)有DNS緩存,就向網(wǎng)站的DNS服務(wù)器請(qǐng)求
網(wǎng)站的DNS域名解析器設(shè)置了CNAME青抛,指向了www.web.51cdn.com(CDN只能接職能負(fù)載均衡系統(tǒng))
職能DNS負(fù)載均衡系統(tǒng)解析域名旗闽,把對(duì)用戶(hù)響應(yīng)速度最快的IP節(jié)點(diǎn)返回給用戶(hù)
瀏覽器向該IP節(jié)點(diǎn)發(fā)送請(qǐng)求
第一次訪問(wèn)的時(shí)候,CDN服務(wù)器請(qǐng)求原web站點(diǎn)蜜另,得到內(nèi)容后一方面將得到的內(nèi)容緩存到本地适室;另一方面將請(qǐng)求的結(jié)果返回給客戶(hù)端(下次訪問(wèn)的時(shí)候,如果節(jié)點(diǎn)的緩存內(nèi)容可用的話(huà)举瑰,就不會(huì)再請(qǐng)求原web站點(diǎn)了)
CND關(guān)鍵技術(shù)有:內(nèi)容路由技術(shù)捣辆、內(nèi)容分發(fā)技術(shù)、內(nèi)容存儲(chǔ)技術(shù)此迅、內(nèi)容管理技術(shù)
內(nèi)容路由功能
CDN的負(fù)載均衡系統(tǒng)實(shí)現(xiàn)CDN的內(nèi)容路由功能汽畴。CDN內(nèi)容路由功能作用使用戶(hù)請(qǐng)求到達(dá)CDN網(wǎng)絡(luò)中的最佳節(jié)點(diǎn)
全局負(fù)載均衡主要目的是讓用戶(hù)的請(qǐng)求到達(dá)CDN網(wǎng)絡(luò)中最近的節(jié)點(diǎn)
局部負(fù)載均衡 在特定的范圍內(nèi)尋找一臺(tái)合適的節(jié)點(diǎn)提供服務(wù)(要考慮到節(jié)點(diǎn)的健康性、負(fù)載情況耸序、支持的媒體格式等運(yùn)行狀態(tài))
內(nèi)容分發(fā)技術(shù)
內(nèi)容分發(fā)技術(shù)主要是PUSH和PULL
PUSH是一種主動(dòng)分發(fā)的技術(shù)忍些,通常由內(nèi)容管理系統(tǒng)發(fā)起,將內(nèi)容從源或者中心媒體資源庫(kù)發(fā)布到各個(gè)邊緣的Cache節(jié)點(diǎn)(HTTP/FTP)
PULL 是一種被動(dòng)的分發(fā)技術(shù)佑吝,當(dāng)用戶(hù)請(qǐng)求的內(nèi)容不在請(qǐng)求所達(dá)到的邊緣Cache的節(jié)點(diǎn)上時(shí)坐昙,該節(jié)點(diǎn)會(huì)從內(nèi)容源或其他節(jié)點(diǎn)PULL下所需的內(nèi)容(按需分發(fā))
內(nèi)容存儲(chǔ)技術(shù)
內(nèi)容源的存儲(chǔ)
通常采用海量存儲(chǔ)架構(gòu)(內(nèi)容的規(guī)模及吞吐量較大)
在Cache節(jié)點(diǎn)中的存儲(chǔ)
Cache節(jié)點(diǎn)的存儲(chǔ)要考慮:
功能上,對(duì)各種內(nèi)容格式的支持芋忿、對(duì)部分緩存的支持
性能上炸客,容量大小,吞吐率戈钢、可靠性及穩(wěn)定性
內(nèi)容管理技術(shù)
本地內(nèi)容管理(對(duì)Cache節(jié)點(diǎn)而言)的目標(biāo)是提高內(nèi)容服務(wù)的效率痹仙,提高本地節(jié)點(diǎn)的存儲(chǔ)利用率。
本地內(nèi)容索引是實(shí)現(xiàn)基于內(nèi)容感知調(diào)度的關(guān)鍵
本地內(nèi)容的復(fù)制殉了。通常為了提高存儲(chǔ)的效率开仰,同一個(gè)內(nèi)容只在某個(gè)特定的節(jié)點(diǎn)中存儲(chǔ)一份,當(dāng)對(duì)該內(nèi)容的訪問(wèn)超過(guò)這個(gè)節(jié)點(diǎn)的能力范圍,就將該內(nèi)容進(jìn)行分發(fā)到其他節(jié)點(diǎn)上
本地內(nèi)容訪問(wèn)狀態(tài)的收集众弓。搜集各個(gè)節(jié)點(diǎn)上各個(gè)內(nèi)容訪問(wèn)的統(tǒng)計(jì)信息恩溅,節(jié)點(diǎn)可用服務(wù)能力及內(nèi)容變化的情況