類比菜鳥全國倉配網絡來學習CDN

來源:https://blog.csdn.net/weixin_43167418/article/details/98564755

什麼是CDN
CDN的全稱是Content Delivery Network,即內容分發網絡。

我們都用過天貓超市,在上面買東西非常方便。

天貓超市的模式是貨品先入天貓超市(後文簡稱爲"貓超")的菜鳥倉,然後由貓超統一派送的。

爲了縮短物流的時間,可以讓消費者快速的收到貨品,菜鳥在全國各地建了本地倉庫,現在大多數情況下,在貓超下單,第二天都可以收到(樓主在江浙滬包郵區,其他地區可能稍有延遲)。

比如我在杭州市西湖區,下單購買了一箱零食,沒過多久就可以看到貓超已經發貨了,發貨地址是杭州的蕭山倉,從杭州的一個區運輸到另外一個區,24小時怎麼也到了。

貓超的配送採用的是智能倉配模式,菜鳥爲天貓超市提供全國智能分倉,在商品銷售前就已經來到距離消費者最近的倉儲基地,下單購買後,由最近的倉發貨,就近配送,速度比跨越多個省市跑過來的快多了。

我們在瀏覽網絡的時候,其實就和以上這個過程十分相似,我們訪問一個頁面的時候,會向服務器請求很多網絡資源,包括各種圖片、聲音、影片、文字等信息。這和我們要購買的多種貨物一樣。

就像貓超會把貨物提前存儲在菜鳥建設在全國各地的本地倉庫來減少物流時間一樣,網站也可以預先把內容分發至全國各地的加速節點。這樣用戶就可以就近獲取所需內容,避免網絡擁堵、地域、運營商等因素帶來的訪問延遲問題,有效提升下載速度、降低響應時間,提供流暢的用戶體驗。

所以,"內容分發網絡"就像前面提到的"全國倉配網絡"一樣,解決了因分佈、帶寬、服務器性能帶來的訪問延遲問題,適用於站點加速、點播、直播等場景。使用戶可就近取得所需內容,解決 Internet網絡擁擠的狀況,提高用戶訪問網站的響應速度和成功率。

有了倉配網絡之後,除了可以提升貨物的配送效率,還有很多其他的好處:

1、首先通過預先做好了貨物分發,使得最終貨品從出倉到消費者手中的過程是比較短的,那麼同城範圍內可選擇的配送公司就有很多選擇,除了比較大的四通一達、順豐以外,還可以選用一些小的物流公司、甚至菜鳥直接調用餓了麼的蜂鳥配送也不是不可能。

CDN技術消除了不同運營商之間互聯的瓶頸造成的影響,實現了跨運營商的網絡加速,保證不同網絡中的用戶都能得到良好的訪問質量

2、對於倉配系統來說,最大的災難可能就是倉庫發生火災、水災等自然災害。如果把原來的一個集中式的大倉庫打散成多個分佈式的小倉庫,分別部署在不同地區,就可以有效的減小自然災害帶來的影響。

廣泛分佈的CDN節點加上節點之間的智能冗餘機制,可以有效地預防黑客入侵以及降低各種DDoS攻擊對網站的影響,同時保證較好的服務質量

 

CDN的基本工作過程

傳統快遞企業採用的配送模式,通過"商家→網點→分撥→分撥→網點→客戶"的環節進行配送。這個過程會有一些問題,如環節多、時效慢、易破損等。

上面這個過程和傳統網站的請求響應過程類似,一般經歷以下步驟:

  1. 用戶在自己的瀏覽器中輸入要訪問的網站域名。
  2. 瀏覽器向本地DNS服務器請求對該域名的解析。
  3. 本地DNS服務器中如果緩存有這個域名的解析結果,則直接響應用戶的解析請求。
  4. 本地DNS服務器中如果沒有關於這個域名的解析結果的緩存,則以迭代方式向整個DNS系統請求解析,獲得應答後將結果反饋給瀏覽器。
  5. 瀏覽器得到域名解析結果,就是該域名相應的服務設備的IP地址 。
  6. 瀏覽器獲取IP地址之後,經過標準的TCP握手流程,建立TCP連接。
  7. 瀏覽器向服務器發起HTTP請求。
  8. 服務器將用戶請求內容傳送給瀏覽器。
  9. 經過標準的TCP揮手流程,斷開TCP連接。

電商自建物流之後,配送模式有所變化:提前備貨將異地件轉化成同城件,省去幹線環節提升時效,倉儲高自動化分揀保證快速出庫的同時也保證了分揀破損率較低。

對於用戶來說,購物過程並沒有變化,唯一的感受就是物流好像是比以前快了。所以,引入CDN之後,用戶訪問網站一般經歷以下步驟:

  1. 當用戶點擊網站頁面上的內容URL,先經過本地DNS系統解析,如果本地DNS服務器沒有相應域名的緩存,則本地DNS系統會將域名的解析權交給CNAME指向的CDN專用DNS服務器。
  2. CDN的DNS服務器將CDN的全局負載均衡設備IP地址返回給用戶。
  3. 用戶向CDN的全局負載均衡設備發起URL訪問請求。
  4. CDN全局負載均衡設備根據用戶IP地址,以及用戶請求的URL,選擇一臺用戶所屬區域的區域負載均衡設備,並將請求轉發到此設備上。
  5. 基於以下這些條件的綜合分析之後,區域負載均衡設備會選擇一個最優的緩存服務器節點,並從緩存服務器節點處得到緩存服務器的IP地址,最終將得到的IP地址返回給全局負載均衡設備:
  6. 根據用戶IP地址,判斷哪一個邊緣節點距用戶最近;
  7. 根據用戶所請求的URL中攜帶的內容名稱,判斷哪一個邊緣節點上有用戶所需內容;
  8. 查詢各個邊緣節點當前的負載情況,判斷哪一個邊緣節點尚有服務能力。
  9. 全局負載均衡設備把服務器的IP地址返回給用戶。
  10. 用戶向緩存服務器發起請求,緩存服務器響應用戶請求,將用戶所需內容傳送到用戶終端。如果這臺緩存服務器上並沒有用戶想要的內容,而區域均衡設備依然將它分配給了用戶,那麼這臺服務器就要向它的上一級緩存服務器請求內容,直至追溯到網站的源服務器將內容拉到本地。

CDN全局負載均衡設備與CDN區域負載均衡設備根據用戶IP地址,將域名解析成相應節點中緩存服務器的IP地址,實現用戶就近訪問,從而提高服務端響應內容的速度。

CDN的組成
前面我們說過,一個倉配網絡是由多個倉庫組成的,同理,內容分發網絡(CDN)是由多個節點組成的。一般來講,CDN網絡主要由中心節點、邊緣節點兩部分構成。

640?wx_fmt=jpeg圖:帝聯雲下載加速場景圖


中心節點

中心節點包括CDN網管中心和全局負載均衡DNS重定向解析系統,負責整個CDN網絡的分發及管理。

邊緣節點

CDN邊緣節點主要指異地分發節點,由負載均衡設備、高速緩存服務器兩部分組成。

負載均衡設備負責每個節點中各個Cache的負載均衡,保證節點的工作效率;同時還負責收集節點與周圍環境的信息,保持與全局負載均衡DNS的通信,實現整個系統的負載均衡。

高速緩存服務器(Cache)負責存儲客戶網站的大量信息,就像一個靠近用戶的網站服務器一樣響應本地用戶的訪問請求。通過全局負載均衡DNS的控制,用戶的請求被透明地指向離他最近的節點,節點中Cache服務器就像網站的原始服務器一樣,響應終端用戶的請求。因其距離用戶更近,故其響應時間才更快。

中心節點就像倉配網絡中負責貨物調配的總倉,而邊緣節點就是負責存儲貨物的各個城市的本地倉庫。

目前,主要由很多提供CDN服務的雲廠商在各地部署了很多個CDN節點,拿阿里雲舉例,我們可以在阿里雲的官網上了解到:阿里雲在全球擁有2500+節點。中國大陸擁有2000+節點,覆蓋34個省級區域,大量節點位於省會等一線城市。海外和港澳臺擁有500+節點,覆蓋70多個國家和地區。

CDN相關技術

首先我們想一下,要想建設一個龐大的倉配網絡都需要考慮哪些問題,需要哪些技術手段呢?

筆者認爲主要是四個重要關注的點,分別是:

1、如何妥善的將貨物分發到各個城市的本地倉。

2、如何妥善的各個本地倉存儲貨物。

3、如何根據用戶的收貨地址,智能的匹配出應該優先從哪個倉庫發貨,選用哪種物流方式等。

4、對於整個倉配系統如何進行管理,如整體貨物分發的精確度、倉配的時效性、發貨地的匹配度等。


這其實和CDN中最重要的四大技術不謀而合,那就是內容發佈、內容存儲、內容路由以及內容管理等。

內容發佈 

它藉助於建立索引、緩存、流分裂、組播(Multicast)等技術,將內容發佈或投遞到距離用戶最近的遠程服務點(POP)處。

內容存儲 

對於CDN系統而言,需要考慮兩個方面的內容存儲問題。一個是內容源的存儲,一個是內容在 Cache節點中的存儲。

內容路由 

它是整體性的網絡負載均衡技術,通過內容路由器中的重定向(DNS)機制,在多個遠程POP上均衡用戶的請求,以使用戶請求得到最近內容源的響應。

內容管理 

它通過內部和外部監控系統,獲取網絡部件的狀況信息,測量內容發佈的端到端性能(如包丟失、延時、平均帶寬、啓動時間、幀速率等),保證網絡處於最佳的運行狀態。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章