關鍵技術:1、緩存算法;2、分發能力;3、負載均衡(全局負載均衡(GSLB,就近性)和本地負載均衡(SLB,節點內部的設備負載均衡));4、支持協議。
cache-control顯示指令控制內容(控制是否緩存,怎樣緩存);http gzip壓縮;web緩存代理軟件(squid);負載均衡軟件(nginx);DNS服務器軟件(BIND)。
A記錄(Address):域名->多個IP的映射。對同一個域名,可以有多條A記錄;
NS記錄(name server):指定由哪臺DNS服務器來解析;
SOA記錄(start of authority):指定該區域的權威域名服務器;
CNAME記錄(canonical name):多個域名->服務器的映射;
PTR記錄(pointer record):IP->域名的映射。
比較項 |
基於DNS解析方式 |
基於HTTP重定向方式 |
基於IP路由方式 |
性能 |
本地DNS服務器和用戶終端DNS緩存能力使GSLB的負載得到有效分擔 |
GSLB處理壓力大,容易成爲系統性能的瓶頸 |
藉助IP網絡設備完成負載均衡,沒有單點性能瓶頸 |
準確度 |
定位準確度取決於本地DNS覆蓋範圍,本地DNS設置錯誤會造成定位不準確 |
在對用戶IP地址數據進行有效維護的前提下,定位準確且精度高 |
就近性調度準確,但對設備健康性等動態信息響應會有延遲 |
效率 |
效率約等於DNS系統本身處理效率 |
依靠服務器做處理,對硬件資源的要求高 |
效率約等於IP設備本身效率 |
擴展性 |
擴展性和通用性好 |
擴展性較差,需對各種應用協議進行定製開發 |
通用性好,但適用範圍有限 |
商用性 |
在Web加速領域使用較多 |
國內流媒體CDN應用較多 |
尚無商用案例 |
流媒體CDN與Web CDN的對比(業務差異)
主要差異點 |
流媒體CDN |
Web CDN |
內容類型 |
大文件、實時流、QoS要求高 |
小文件、固定大小、QoS要求低 |
用戶行爲 |
拖曳、暫停等播放控制 |
下載後瀏覽 |
內容管理 |
內容冷熱度差異明顯(對命中率要求高),內容生命週期長 |
內容冷熱度差異不明顯,內容生命週期短 |
回源要求 |
回源比例小 |
回源比例大 |
現在已經投入商用的CDN系統,基本都是同時提供Web CDN能力和流媒體CDN能力的,而且這兩種能力的實現在系統內部幾乎都是互相隔離的,從調度系統到節點設備都沒有交叉互用
流媒體CDN與Web CDN的設計差異(設計差異)
主要差異點 |
流媒體CDN |
Web CDN |
Cache |
支持多種流化協議,硬件配置大存儲、高I/O |
支持多協議(HTTP、FTP等)硬件配置小存儲、高性能CPU |
負載均衡 |
DNS+HTTP重定向方式 |
DNS方式 |
內容分發方式 |
熱片PUSH,冷片PULL |
全PULL方式 |
組網 |
多級組網,可能要求組播、單播混合組網 |
兩級組網 |
主要差異點 |
流媒體CDN |
Web CDN |
Cache |
支持多種流化協議,硬件配置大存儲、高I/O |
支持多協議(HTTP、FTP等)硬件配置小存儲、高性能CPU |
負載均衡 |
DNS+HTTP重定向方式 |
DNS方式 |
內容分發方式 |
熱片PUSH,冷片PULL |
全PULL方式 |
組網 |
多級組網,可能要求組播、單播混合組網 |
兩級組網 |
問題:當多個客戶端同時請求同一內容時,如果CDN服務器沒有緩存,需要pull,會進行合併請求嗎?還是都重定向?(特別是對於流媒體或者大文件)