CDN
什麼是CDN
給出一段 官方的介紹
CDN的全稱是Content Delivery Network ,即內容分發網路,是位於網路層和應用層之間的網路應用。
這個的目的是通過在先用的Internet中增加一層新的網路架構,能夠通過分散式的伺服器集群來改善internet上的服務質量,提高網站的承載能力和提升用戶體驗
CDN的作用
在了解CDN的作用之前,我們先說說看在傳統互聯網中存在的問題
傳輸延遲
網站對用戶的訪問響應在網路上主要取決於三個部分:
- 網站伺服器接入internet的鏈路所能提供的帶寬,也就是通常說的網站接入帶寬
- 網路中從網站的接入點到最終用戶的接入點之間的傳輸路徑,由於internet是由很多網路組成的,所以這一部門經常是跨網路的,所以在網路中的傳輸延時和鏈路擁塞會影響數據的傳輸速度
- 最終用戶接入internet的方式
內容集中放置
在大部分情況下,現有網路上的內容都採用內容集中式放置,這樣方便對網站的管理和維護,以及內容的更新,但是對於互聯網的用戶來說,他們是分布在全球的,所以他們很收當前的網路環境影響,訪問效果也得不到保障
而且當特殊時期,如:開展活動等。突然導致訪問量的劇增,那麼就會導致網站的帶寬資源的緊張,伺服器的壓力劇增。但如果平時的情況下,去擴展資源,增加機器,又會導致大量的資源浪費。那麼,CDN能解決什麼問題呢?
CDN技術通過將網站的內容發布到最接近用戶的網路「邊緣」的方法,使用戶可以就近取得所需的內容,解決網路擁塞的情況,提高了用戶訪問網站的響應速度。
而且CDN包括:分散式存儲、負載均衡、網路請求的重定向和內容管理等幾個部分組成,可以通過訪問用戶的來源和伺服器負載等網路性能的分析,從而以更適合的方式來響應用戶的請求
CDN的原理
CDN採用智能路由和流量管理技術,及時發現能夠給訪問者提供最快響應的加速節點,並將訪問者的請求能夠轉發到該加速的的節點,由該加速節點提供內容服務,當用戶訪問使用CDN服務的網站時,域名解析請求最終由重定向DNS負責處理。它會先預定好一個策略(內容類型、所在地域、網路負載狀況等),然後將當時最快能夠響應用戶的節點地址提供給用戶,使用戶可以得到快速的服務,同時它會和其他的CDN節點保持通信,搜素各節點的健康狀態,確保不會把請求分發到」不健康「的節點上。
使用CDN服務之後,用戶的訪問過程:
1) 用戶在瀏覽器中輸入要被網站的域名,瀏覽器向本地DNS 伺服器請求對該域名的解析;
2)本地DNS 解析伺服器到根DNS 解析伺服器上找所授權DNS 記錄,根DNS返回給本地DNS伺服器一條CNAME的記錄;3)本地DNS伺服器根據CNAME的內容向授權DNS伺服器進行請求,授權DNS伺服器根據GSLB將響應速度最快伺服器地址返回域名給本地DNS;4)本地DNS再將得到的IP地址返回給瀏覽器; 5)瀏覽器向節點伺服器發出數據請求,節點伺服器響應客戶瀏覽器的請求返回數據;6)客戶端得到由CDN節點伺服器返回的數據以後顯示出來並完成整個瀏覽的數據請求過程
當然第一次解析的時候比較慢,之後localDNS 會緩存一個TTL時間(300s)ip和域名之間的映射,但是超過這個時間,緩存就會釋放了。
推薦閱讀:
※瀏覽器的渲染:過程與原理
※Flexbox 中的 grow, shrink 與 basis
※【CSS】grid layout 體驗 container 屬性
※【譯】為什麼我不再使用Fetch API開發應用
※Vue.js 2.0 快速上手 - 基礎篇