- Linux運維最佳實踐
- 胥峰 楊俊俊
- 1110字
- 2019-01-04 00:50:53
最佳實踐8:架構典型CDN系統
CDN系統是一個復雜的系統,從核心組件進行簡化抽象,可以用圖2-1進行說明。
下面分別以上海電信用戶、山東聯通用戶訪問同一個網站www.xufeng.info為例,說明數據訪問流程。以下是具體步驟。
1)上海電信用戶請求其配置的上海電信DNS服務器,要求解析www.xufeng.info。
2)如果上海電信DNS服務器上沒有該域名的緩存,則該服務器會請求xufeng.info的權威域名服務器。如果有該域名的緩存,則直接返回緩存的DNS解析結果。

圖2-1 CDN系統組成部分架構簡圖
3)xufeng.info的權威域名服務器會根據DNS視圖技術,依據上海電信DNS服務器的來源IP,把www.xufeng.info解析到上海電信CDN節點。
4)上海電信用戶訪問到上海電信CDN節點。
5)上海電信CDN節點使用緩存+代理的方式訪問到源站。
和以上的5個步驟類似,山東聯通用戶解析到山東聯通CDN節點,通過山東聯通CDN節點訪問到源站資源。
通過以上的5個簡要的步驟,可以分析出CDN系統的2個關鍵技術分別如下。
·DNS的視圖技術:通過該技術,使得來自不同區域、運營商的用戶被調度到距離用戶最近的不同的CDN節點。它的作用總結起來就是“調度”。該技術在第1章中有詳細闡述,在此不再贅述。
·CDN節點的緩存和代理技術:緩存是指,如果在該節點上有對應的未過期資源,如圖片、HTML、CSS等,則它直接返回給用戶而縮小用戶的資源等待時間;代理是指,如果在該節點上沒有對應的資源,或者資源已經過期無效,則它會請求源站獲取內容后再返回給用戶。緩存和代理技術優化了已緩存文件的傳輸效率。同時對于未被緩存的文件,在某些情況下,在一定程度上可以優化用戶到源站之間的網絡鏈路。比如用戶是接入的運營商A寬帶網絡,而源站是部署在運營商B,那么通過優化的CDN網絡,可以減少用戶直接跨運營商訪問導致的高延時甚至丟包率帶來的影響。
從宏觀上,在研究了CDN的組成部分后,再來看看聚焦到某個CDN節點后的技術細節。
某個CDN節點的典型架構圖,如圖2-2所示。

圖2-2 CDN節點的典型架構圖
在圖2-2中,各組件的功能和設計要點如下。
·負載均衡服務器組:使用LVS的DR模式實現4層的網絡負載均衡。使用DR模式的網絡負載均衡,主要優點是實現高吞吐量及屏蔽后端Nginx代理服務器組中單臺服務器故障導致的對業務的影響。關于負載均衡的詳細技術方案和對比,請參閱第3章的相關內容。
·Nginx代理服務器組:使用Nginx的反向代理技術(Upstream),配置為url_hash的方式,提高對后端Squid緩存服務器組的緩存命中率。同時,也能達到屏蔽后端Squid緩存服務器組中單臺服務器故障導致的對業務的影響。
·Squid緩存服務器組:根據HTTP協議中有關緩存設置的規定,實現對頁面和資源進行緩存的關鍵功能業務。通過該組服務器,可以實現緩存文件的快速響應和對源站的代理。
理解HTTP協議中的緩存控制指令和原理,是構建Squid緩存的必要步驟。下一個最佳實踐將對緩存控制指令和原理進行探討。
- Mastering Distributed Tracing
- 突破平面3ds Max動畫設計與制作
- 無蘋果不生活 The New iPad隨身寶典
- Linux內核設計的藝術:圖解Linux操作系統架構設計與實現原理
- Kali Linux高級滲透測試
- Linux從入門到精通(視頻教學版)
- Implementing Domain-Specific Languages with Xtext and Xtend(Second Edition)
- 基于Arduino的嵌入式系統入門與實踐
- Linux深度攻略
- 深入理解Android:卷III
- OpenStack Trove Essentials
- Raspberry Pi Networking Cookbook
- TD-SCDMA HSDPA系統設計與組網技術
- The Infinite Retina
- Windows Server 2012活動目錄企業應用(微課版)