Java Web 深入分析(3) CDN


CDN (Content Delivery NetWork) 內容分發網絡,它是構築在現有互聯網基礎上的一種先進的流量分配網絡。區別於鏡像,相當於是 CDN = 鏡像(mirror) +
緩存(Cache)+整體負載均衡(GSLB)。目前CDN 都已緩存網站中的靜態數據為主,如CSS,JS,圖片和靜態頁面等數據,用戶從主服務器上請求到動態頁面之后,再從CDN上下載這些靜態數據,從而加速訪問。

CDN目標:

  • 可擴展性(Scalebility) 應對新增大量的數據,用戶和事務的擴展性。低成本提供高質量的內容分發。
  • 安全性(Security) 強調安全問題。
  • 可靠性。容災和負載均衡咯。

CDN架構:
如圖用戶去訪問一個假設是css文件,先是想localserver發起請求,然后迭代解析回到這個域名的注冊服務器去解析,然后通過cname解析到CDN全局負載均衡服務器,然后用戶直接去這個CDN節點訪問這個css文件咯,如果不存在就去源站請求。

3種負載均衡

  • 鏈路負載均衡:dns服務器進行負載均衡,在解析中完成。

  • 集群負載均衡:分為硬件和軟件

     - 硬件:非常昂貴的硬件設備,如F5  開始一旦壞掉就GG
    

    - 軟件: 通過代理服務器,可能會增加網絡延時。LVS在IP層進行地址轉發,HAProxy根據HTTP請求頭進行轉發。

  • 操作系統負載均衡:利用操作系統的軟中斷和硬中斷,來達到負載均衡。

CDN動態加速:這個是目前比較流行的一種優化技術。原理其實就是在CDN的DNS解析中通過動態鏈路探測技術來找到回源最好的一條路徑,然后通過dns的調度將后面所有的請求都選在這條特定的路徑上,從而加速用戶的訪問效率。所以一個用戶在CDN節點遍布全國的情況下從一個CDN節點接入之后,可以選擇一個最好的源站鏈路給用戶。簡單的方法就是每條鏈路去下一個特定大小的文件,然后找出這個鏈路列表里面耗時最小的。其實還要考慮帶寬和安全等等成本。

如下圖就是一個就是一個使用CDN加速網站訪問的架構示意圖

其中還包括了網站分布式文件系統、noSQL和搜索引擎技術等。


免責聲明!

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



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