好記性不如爛筆頭o(^▽^)o
此文主要作為初步接觸CDN的學習和了解,查閱了1些資料,并依照自己的瀏覽習慣進行語言整理、分段和整合,參考資料見文末1,2。感謝文章貢獻者,深入淺出。
背景:
當下的互聯網利用都包括大量的靜態內容,但靜態內容和1些準動態內容又是最耗費帶寬的,特別是針對全國乃至全球的大型網站,如果這些要求都指向主站的服務器的話,不但是主站服務器受不了,單端口500M左右的帶寬也扛不住,所以大多數網站都需要CDN服務。
CDN,Content Delivery Network,基于內容的散布式分發網絡。
那末甚么是CDN服務?
??簡單的說CDN就是讓本來上海的閱讀器要訪問北京主站內容的要求轉而由部署在上?;蚰暇┑木彺鎭硎芾恚@樣要求的數據只需經過1跳或有限的幾跳就可以到達要求端,有效利用帶寬并且下降主站壓力,對電子商務網站和搜索引擎網站和門戶網站,CDN的公道利用顯得尤其重要。
1般需要CDN服務的網站會選擇以下的組織方案:
1.通過租用的IDC提供額外的CDN服務;
2..購買專業的CDN服務商的服務;
3.自己組建CDN網絡;本錢順次增高。
??CDN設計目的是實現WEB內容的負載均衡,避免出現訪問要求熱門,延時響應等WEB要求通病。基于此,CDN的特點可以說有
1. 散布式存儲
2. 通過智能DNS解析或http重定向實現內容分發的負載均衡
3. 全局負載均衡管理與內容管理
CDN網絡1般分為中心與邊沿節點兩部份,中心負責全局負載均衡管理與內容管理;
中心節點的功能以下:
1. 隨時監控邊沿節點的健康狀態(可用性,堵塞程度);
2. 根據邊沿節點到要求真個距離,和邊沿節點的健康狀態,按1定的策略重定向要求;
3. 與客戶主站進行數據同步。
傳統的未加緩存服務的訪問進程:
- 用戶向閱讀器提供要訪問的域名;
- 閱讀器調用域名解析函數庫對域名進行解析,以得到此域名對應的IP地址;
- 閱讀器使用所得到的IP地址,域名的服務主機發出數據訪問要求;
- 閱讀器根據域名主機返回的數據顯示網頁的內容。
??CDN網絡是在用戶和服務器之間增加Cache層, 如何將用戶的要求引導到Cache上取得源服務器的數據,主要是通過接收DNS實現,訪問使用CDN緩存后的網站的進程:
- 用戶向閱讀器提供要訪問的域名;
- 閱讀器調用域名解析庫對域名進行解析,由于CDN對域名解析進程進行了調劑,所以解析函數庫1般得到的是該域名對應的CNAME記錄,為了得到實 際IP地址,閱讀器需要再次對取得的CNAME域名進行解析以得到實際的IP地址;在此進程中,使用的全局負載均衡DNS解析,如根據地理位置信息解析對應的IP地址,使得用戶能就近訪問。
- 此次解析得到CDN緩存服務器的IP地址,閱讀器在得到實際的IP地址以后,向緩存服務器發出訪問要求;
- 緩存服務器根據閱讀器提供的要訪問的域名,通過Cache內部專用DNS解析得到此域名的實際IP地址,再由緩存服務器向此實際IP地址提交訪問要求;
- 緩存服務器從實際IP地址得得到內容以后,1方面在本地進行保存,以備以后使用,2方面把獲得的數據返回給客戶端,完成數據服務進程;
1.用戶向閱讀器輸入www.web.com這個域名,閱讀器第1次發現本地沒有dns緩存,則向網站的DNS服務器要求;
2.網站的DNS域名解析器設置了CNAME,指向了www.web.51cdn.com,要求指向了CDN網絡中的智能DNS負載均衡系統;
3.智能DNS負載均衡系統解析域名,把對用戶響應速度最快的IP節點返回給用戶;
4.用戶向該IP節點(CDN服務器)發出要求;
5.由因而第1次訪問,CDN服務器會向原web站點要求,并緩存內容;
6.要求結果發給用戶。
??固然很多細節沒有觸及到,比如第1步,首先向本地的DNS服務器要求。第5步,內容淘汰機制(根據TTL)等。但原理大體如此。
??對普通的Internet用戶來說,每一個CDN節點就相當于1個放置在它周圍的WEB。通過全局負載均衡DNS的控制,用戶的要求被透明地指向離他最近的節點,節點中CDN服務器會像網站的原始服務器1樣,響利用戶的要求。由于它離用戶更近,因此響應時間必定更快。
??每一個CDN節點由兩部份組成:負載均衡裝備和高速緩存服務器
??負載均衡裝備負責每一個節點中各個Cache的負載均衡,保證節點的工作效力;同時,負載均衡裝備還負責搜集節點與周圍環境的信息,保持與全局負載DNS的通訊,實現全部系統的負載均衡。CDN的管理系統是全部系統能夠正常運轉的保證。它不但能對系統中的各個子系統和裝備進行實時監控,對各種故障產生相應的告警,還可以實時監測到系統中 總的流量和各節點的流量,并保存在系統的數據庫中,使網管人員能夠方便地進行進1步分析。通過完善的網管系統,用戶可以對系統配置進行修改。
??CDN的關鍵技術主要有內容路由技術、內容分發技術、內容存儲技術、內容管理技術等。
具體的我就不深究了,如有機會接觸,再繼續深入。