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

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

客戶端如何訪問
沒有CDN時:

在沒有CDN時,會訪問本地DNS,然后遞歸根DNS至權威DNS服務器獲取IP地址。
直接進行訪問
有CDN時:

有CND后,會先訪問web.com權威DNS服務器,設置一個CNAME別名,指向另一個域名www.web.cdn.com,返回給本地DNS服務器
當本地 DNS 服務器拿到這個新的域名時,需要繼續(xù)解析這個新的域名。這個時候,再訪問的就不是 web.com 的權威 DNS 服務器了,而是 web.cdn.com 的權威 DNS 服務器,這是 CDN 自己的權威 DNS 服務器。在這個服務器上,還是會設置一個 CNAME,指向另外一個域名,也即 CDN 網絡的全局負載均衡器。
接下來,本地 DNS 服務器去請求 CDN 的全局負載均衡器解析域名,全局負載均衡器會為用戶選擇一臺合適的緩存服務器提供服務,選擇的依據包括:
根據用戶 IP 地址,判斷哪一臺服務器距用戶最近; 用戶所處的運營商; 根據用戶所請求的 URL 中攜帶的內容名稱,判斷哪一臺服務器上有用戶所需的內容; 查詢各個服務器當前的負載情況,判斷哪一臺服務器尚有服務能力。
基于以上這些條件,進行綜合分析之后,全局負載均衡器會返回一臺緩存服務器的 IP 地址。
