CDN是什么?使用CDN有什么優勢?


內容分發網絡(Content Delivery Network,簡稱CDN)

是建立並覆蓋在承載網之上,由分布在不同區域的邊緣節點服務器群組成的分布式網絡。


CDN應用廣泛,支持多種行業、多種場景內容加速,例如:圖片小文件、大文件下載、視音頻點播、直播流媒體、全站加速、安全加速。

 

 

借用阿里雲官網的例子,來簡單介紹CDN的工作原理。


假設通過CDN加速的域名為www.a.com,接入CDN網絡,開始使用加速服務后,當終端用戶(北京)發起HTTP請求時,處理流程如下:

  1. 當終端用戶(北京)向www.a.com下的指定資源發起請求時,首先向LDNS(本地DNS)發起域名解析請求。
  2. LDNS檢查緩存中是否有www.a.com的IP地址記錄。如果有,則直接返回給終端用戶;如果沒有,則向授權DNS查詢。
  3. 當授權DNS解析www.a.com時,返回域名CNAME www.a.tbcdn.com對應IP地址。
  4. 域名解析請求發送至阿里雲DNS調度系統,並為請求分配最佳節點IP地址。
  5. LDNS獲取DNS返回的解析IP地址。
  6. 用戶獲取解析IP地址。
  7. 用戶向獲取的IP地址發起對該資源的訪問請求。
  • 如果該IP地址對應的節點已緩存該資源,則會將數據直接返回給用戶,例如,圖中步驟7和8,請求結束。
  • 如果該IP地址對應的節點未緩存該資源,則節點向源站發起對該資源的請求。獲取資源后,結合用戶自定義配置的緩存策略,將資源緩存至節點,例如,圖中的北京節點,並返回給用戶,請求結束。


從這個例子可以了解到:


(1)CDN的加速資源是跟域名綁定的。
(2)通過域名訪問資源,首先是通過DNS分查找離用戶最近的CDN節點(邊緣服務器)的IP
(3)通過IP訪問實際資源時,如果CDN上並沒有緩存資源,則會到源站請求資源,並緩存到CDN節點上,這樣,用戶下一次訪問時,該CDN節點就會有對應資源的緩存了。

 
 

淘寶鹿班圖片業務背景


商品的主圖貫穿整個導購和交易鏈路,相比文字,圖片更能吸引眼球,主圖對消費者的購物決策有很大的影響。主圖上表達的內容各式各樣,但其中一定少不了的一定是價格的表達。


長期以來,主圖上的價格表達都是商家自己維護,商品價格發生變化后,手動去換圖。這樣做,會帶來3個問題:
(1)價格的准確性:商家手動填寫的圖片價格,跟實際的購買價可能不一致,造成不好的用戶體驗。
(2)價格更新的及時性:有時候,由於優惠券/品類券的生效失效,會導致商品的價格變化會很頻繁,商家根本來不及換圖。
(3)商家的操作成本:手動修改圖片的價格,成本還是很高的,需要通過ps等軟件修改圖片,重新上傳,編輯商品。


今年雙11,我們淘寶鹿班團隊,試圖通過技術手段來解決這些問題。當商品價格發生變化后,系統自動計算新的價格,自動合成圖片,然后更新商品主圖。


我們知道,淘寶網有上億的商品,光大促商品就有幾千萬,因此,價格變化導致的圖片變化頻率非常高。最高的就是在雙11的0點,全部大促商品的價格都會由日常價格變成大促價格。


這就意味着,大促高峰期,有上千萬的圖片剛生成就會被用戶訪問。那這個情況會產生什么問題呢,讓我們先了解下淘寶的圖片空間和CDN的架構,就清楚了。

 

 


淘寶圖片空間和CDN的架構

淘寶整個圖片的訪問鏈路有三級緩存(客戶端本地、CDN L1、CDN L2),所有圖片都持久化的存儲到OSS中。真正處理圖片的是img-picasso系統,它的功能比較復雜,包括從OSS讀取文件,對圖片尺寸進行縮放,編解碼,所以機器成本比較高。


CDN的緩存分成2級,合理的分配L1和L2的比例,一方面,可以通過一致性hash的手段,在同等資源的情況下,緩存更多內容,提升整體緩存命中率;另一方面,可以平衡計算和IO,充分利用不同配置的機器的能力。

 

用戶訪問圖片的過程如下:
(1)用戶通過手機淘寶來搜索商品或者查看寶貝詳情。
(2)詳情/搜索/推薦通過調用商品中心返回商品的圖片URL。
(3)客戶端本地如果有該圖片的緩存,則直接渲染圖片,否則執行下一步。
(4)從CDN L1回源圖片,如果L1有該圖片的緩存,則客戶端渲染圖片,同時緩存到本地,如果L1沒有緩存,則執行下一步。
(5)從CDN L2回源圖片,如果L2有該圖片的緩存,則客戶端渲染圖片,同時CDN L1及客戶端緩存圖片內容,如果CDN L2沒有緩存該圖片,則執行下一步。
(6)從圖片空間回源圖片,圖片空間會從OSS拉取圖片源文件,按要求進行尺寸縮放,然后執行編解碼,返回客戶端能夠支持的圖片內容,之后客戶端就可以渲染圖片,同時CDN的L1、L2以及客戶端都會緩存圖片內容。


 
后面懶得復制粘貼了,看原博吧hhhh
 
 
 
 
 
 


作者:阿里巴巴淘系技術
鏈接:https://www.zhihu.com/question/36514327/answer/1604554133
來源:知乎
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM