05.31 淘寶首頁全球響應速度這麼快的原因-CDN加速

簡介

CDN是大型互聯網公司架構不可缺少的一環,也是我們作為JAVA後端開發人員朝架構師方向成長的必經之路,這篇文章讓你知曉為什麼用CDN,以及CDN解決了什麼問題。

場景描述

我們網站中會有很多靜態資源,比如js、css、圖片等等,就以圖片展示為例。

假設我們現在有一個網站:www.tony.com,圖片通過/images路徑訪問,比如訪問logo.png的地址是:www.tony.com/images/logo.png。

我們的html頁面是這樣引用的:

淘寶首頁全球響應速度這麼快的原因-CDN加速

客戶端直接訪問服務器訪問圖片信息

在小型系統、訪問量小流量少的系統中這麼做是可以的。

大型系統架構中會有三個問題:

第一:帶寬壓力大。BAT這個級別的用戶量,如果都訪問一個區域的服務器,網絡運營商壓力山大,如果真的懟到一個區域,需要單獨做網絡升級。

第二:系統無法保障高可用。全球用戶請求全部懟到一個區域,如果出現運營商級別的網絡故障,會導致系統中斷服務。比如微信出現的多次故障,都是挖掘機背鍋(挖斷了光纜)。

第三:用戶體驗差,響應慢。大型企業面臨的是跨區域,跨國家的網絡環境,國內的不同地區的網絡條件都有很大差別,更何況是全球化的大型企業。比方說,美國用戶訪問一個部署在四川成都的網站,響應時間肯定要比直接訪問美國本土的網站要慢很多,畢竟信號傳輸的距離都遠了不止一星半點。

這是大型高併發系統開發中的技術難點,接下來我們分析一下解決方案

上次有人問我怎麼學的JAVA架構知識,我在這說一下吧,關於分佈式高併發系統開發技術的學習,我是按照下面這些知識點去學習的,手上有一些學習的視頻資料,有需要的可以私信我,分享給大家。

淘寶首頁全球響應速度這麼快的原因-CDN加速

互聯網高併發分佈式系統開發必須掌握的知識

解決:CDN加速

CDN加速意思就是在用戶和我們的服務器之間加一個緩存機制。類似JAVA開發中我們在應用和數據庫之間加一個redis分佈式緩存。

淘寶首頁全球響應速度這麼快的原因-CDN加速

加了CDN之後的請求流程

1、 為什麼加了CDN就解決了上面三個問題?

大型的專業CDN服務商全球各地都有服務器,它把用戶請求分配到就近的服務器。從而解決了帶寬、高可用、響應慢的問題。術業有專攻,我們這裡實際就是藉助了CDN服務商,當然,BAT這些公司,自己有專門做CDN這塊的業務。

2、這個緩存關係怎麼對應起來的?

請求 -> http://static.tony.com -> cdn.tony.xxx.com -> 緩存 -> www.tony.com

我們使用CDN之後,服務商會提供一個子域名,比如static.tony.cdn.com,我們可以在後臺配置與這個子域名相對於的源域名(www.tony.com),形成一個綁定關係(這個環節你可以自己去看看阿里雲,七牛雲的CDN操作文檔)。

同時,我們系統html頁面中訪問logo.png的方式也發生了變化,不再是直接訪問自己的服務器,而是通過指定域名去訪問cdn提供的子域名(static.tony.com 這個子域名 通過CNAME配置把請求轉發到CDN子域名)。

這就是大型互聯網公司的網站為什麼那麼快的原因之一,這個CDN加速的環節你明白了嘛?

可以自己去弄個免費CDN玩一下哦,理論+實戰掌握的才更牢固

淘寶首頁全球響應速度這麼快的原因-CDN加速

關注/轉發 就是最好的支持


分享到:


相關文章: