動態內容加速服務的實現
隨著web2.0的興起,產生了動態網頁、個性化內容、電子交易資料等內容的加速,這些就涉及了動態內容加速技術。
靜態內容的加速,都是對於表現層的加速,對於動態頁面等內容的加速,則要涉及邏輯層和資料訪問層的加速技術。
動態內容的提供不僅僅是html頁面的設計及編輯,它還需要有後台資料庫、應用邏輯程式的支援,以實現與使用者的動態互動。
web系統由表現層、業務邏輯層、資料訪問層+使用者資料層
表現層是web系統與外部系統的互動介面,這一層通常由http伺服器組成,負責接收使用者端的http內容訪問請求,從檔案系統中讀取靜態檔案
業務邏輯層負責處理所有業務邏輯和動態內容的生成
資料訪問層位於系統的後端,負責管理web系統的主要資訊和資料儲存,通常由資料庫伺服器和儲存裝置組成
使用者資料層負責儲存使用者資訊資料和關聯關係,內容來自使用者提供和使用者行為分析結果
web**借助cdn技術能夠獲得更好的擴充套件性和高效能,核心在於cdn採用的快取(caching)和複製(replication)機制,
其中快取是將最近經常被訪問的源伺服器擁有的內容複製到邊緣伺服器上,可被視為具有特定策略的複製。
cdn的複製機制是指將源web系統邏輯架構的各個層次的相應功用複製到邊緣伺服器上實現,以緩解源系統的處理壓力。
web系統表現層的複製,就是靜態內容的複製。
邊緣伺服器又被稱為**伺服器,通過反向**加速靜態檔案的交付
web系統業務邏輯層的複製。cdn被用於改進動態生成內容的交付效能。
即將應用程式和業務元件直接在cdn的邊緣伺服器中計算,從而直接在靠近使用者的地方生成動態web內容
akamai邊緣計算部署模型,
包括使用者(使用瀏覽器)、企業j2ee應用系統(執行業務邏輯、原有系統、資料庫等)、
分布式網路伺服器(edge computing平台)執行支援j2ee應用程式設計模型的websphere或者tomcat應用伺服器
web系統資料訪問層複製。cdn邊緣伺服器能夠具備生成動態內容和掌管內容生成資料的能力
利用邊緣伺服器代替源鑽web系統的後台資料訪問層中的資料庫系統,及時響應業務邏輯層提出的資料查詢需求。
web系統使用者檔案的複製。
(應用加速技術實際上是傳統的網路負載均衡的公升級和擴充套件,
綜合使用了負載均衡(智慧型排程)、tcp優化管理(tcp keep-alive connection,更激進的tcp視窗策略,
智慧型網路位址(nat-公私網ip轉換)、高階路由、智慧型埠映象等技術。)
tcp的問題
tcp視窗大小的限制(tcp視窗大小隨傳輸成功而變大,而一旦發生傳輸失敗,其視窗大小會立即縮小)
tcp協議慢啟動(三握手)和擁塞控制
廣域網加速關鍵技術
針對層次
優化技術
優化原理
(1)傳輸發起端
原始資料優化
通過壓縮、重複資料刪除和字典等技術,可節省絕大多數傳輸資料量,節約頻寬,提高伺服器效能
(2)資料快取技術
將類http的業務、、文字等快取在本地,只傳輸動態內容,減少頻寬占用
(3)物理層(硬體)
提公升裝置效能
基於現有tcp/ip,通過硬體方式提高效能,提高大量tcp併發連線和會話重組等處理能力
(4)網路層(ip)
qos和流量控制
通過協議識別,實現在同一埠中不同應用的真正區分,進而通過分流實現時延敏感應用的頻寬保障
(5)傳輸層(tcp)
**裝置 在傳輸兩端各架設**裝置,所有的響應報文都在本地完成,只有真正發起請求時才通過鏈路,相當於同時在伺服器和客戶端進行
(6)協議欺騙
tcp協議優化 通過在廣域網兩端部署專用裝置,在不影響基本傳輸情況下,通過各種手段對tcp視窗、響應、啟動等機制進行改進,從而提高協議
(7)機制的效率
應用層應用**(快取) 將常用的應用程式快取在本地並配置好,使用者可不用在本地等待類似於認證等會話過程,而是直接開始下乙個應用,實現流水作業
資料碎片化,就是在應用層將資料分成乙個個小的資料塊,便於後續的資料比對使用。
廣域網加速裝置在傳輸資料前會將快取中的資料與資料切塊進行對比,
從而找出那些資料是重複資料,不再傳送,哪些資料是新鮮的、需要傳輸的資料。
資料壓縮和指標技術一般是放在一起使用的,在對資料分段後,會對每一段資料生成乙個資料指標,對於重複內容,只傳輸指標。在壓縮演算法設計上,要求同時兼顧資料壓縮比和壓縮/解壓縮時間。
高速tcp傳輸技術
自適應擁塞視窗
有限制地快速重傳
連線池:通過維護乙個預先建立好的tcp連線池,當有資料傳輸需求時,從連線池中挑選一條可用連線今次那個傳輸。
ssl加速技術
ssl加密是一種處理器密集型加密演算法,如果用伺服器軟體處理會消耗大量cpu資源,
一般會在提供業務能力的伺服器外圍部署專門的ssl加速裝置,採用硬解密方式實現
ssl加密分對稱秘鑰和非對稱秘鑰(計算資源消耗更大)
ssl的基本原理和實現
可認證性(authentication)
私隱性(privacy)
完整性(integrity)
不可抵賴性(undeniability):傳送者不能自稱沒有發出過接受者從他那裡收到的內容
ssl加速
通常是基於硬體的ssl加速
通過在伺服器上安裝一塊ssl加速板卡,可有效分擔伺服器cpu處理ssl事務的壓力
cdn的實現原理
在描述cdn的實現原理,讓我們先看傳統的未加快取服務的訪問過程,以便了解cdn快取訪問方式與未加快取訪問方式的差別:
使用者提交網域名稱→瀏覽器對網域名稱進行解釋→得到目的主機的ip位址→根據ip位址訪問發出請求→得到請求資料並回覆
由上可見,使用者訪問未使用cdn快取**的過程為:
1)、使用者向瀏覽器提供要訪問的網域名稱;
2)、瀏覽器呼叫網域名稱解析函式庫對網域名稱進行解析,以得到此網域名稱對應的ip位址;
3)、瀏覽器使用所得到的ip位址,向網域名稱的服務主機發出資料訪問請求;
4)、瀏覽器根據網域名稱主機返回的資料顯示網頁的內容。
通過以上四個步驟,瀏覽器完成從使用者處接收使用者要訪問的網域名稱到從網域名稱服務主機處獲取資料的整個過程。
cdn網路是在 使用者和伺服器之間增加cache層,
如何將使用者的請求引導到cache上獲得源伺服器的資料,主要是通過接管dns實現,
1)、使用者向瀏覽器提供要訪問的網域名稱;
2)、瀏覽器呼叫網域名稱解析庫對網域名稱進行解析,由於cdn對網域名稱解析過程進行了調整,
所以解析函式庫一般得到的是該域 名對應的cname記錄,為了得到實際ip位址,
瀏覽器需要再次對獲得的cname網域名稱進行解析以得到實際的ip位址;在此過程中,使用的全域性負載均衡 dns解析,
如根據地理位置資訊解析對應的ip位址,使得使用者能就近訪問。
3)、此次解析得到cdn快取伺服器的ip位址,瀏覽器在得到實際的ip位址以後,向快取伺服器發出訪問請求;
4)、快取伺服器根據瀏覽器提供的要訪問的網域名稱,通過cache內部專用dns解析得到此網域名稱的實際ip位址,
再由快取伺服器向此實際ip位址提交訪問請求;
5)、快取伺服器從實際ip位址得得到內容以後,一方面在本地進行儲存,以備以後使用,
另一方面把獲取的資料返回給客戶端,完成資料服務過程;
6)、客戶端得到由快取伺服器返回的資料以後顯示出來並完成整個瀏覽的資料請求過程。
通過以上的分析我們可以得到,為了實現既要對普通使用者透明(即加入快取以後使用者客戶端無需進行任何設定,直接使用被 加速**原有的網域名稱即可訪問,又要在為指定的**提供加速服務的同時降低對icp的影響,只要修改整個訪問過程中的網域名稱解析部分,以實現透明的加速服務,
下面是cdn網路實現的具體操作過程。
1)、作為icp,只需要把網域名稱解釋權交給cdn運營商,其他方面不需要進行任何的修改;
操作時,icp修改自己網域名稱的解析記錄,一般用cname方式指向cdn網路cache伺服器的位址。
2)、作為cdn運營商,首先需要為icp的網域名稱提供公開的解析,
為了實現sortlist,一般是把icp的網域名稱解釋結果指向乙個cname記錄;
3)、當需要進行sortlist時,cdn運營商可以利用dns對cname指向的網域名稱解析過程進行特殊處理,
使dns伺服器在接收到客戶端請求時可以根據客戶端的ip位址,返回相同網域名稱的不同ip位址;
4)、由於從cname獲得的ip位址,並且帶有hostname資訊,請求到達cache之後,
cache必須知道源伺服器的ip位址,所以在cdn運營商內部維護乙個內部dns伺服器,用於解釋使用者所訪問的網域名稱的真實ip位址;
5)、在維護內部dns伺服器時,還需要維護一台授權伺服器,控制哪些網域名稱可以進行快取,
而哪些又不進行快取,以免發生開放**的情況。
CDN技術原理
cdn技術原理 cdn的全稱是content delivery network,即內容分發網路。其基本思路是盡可能避開網際網路上有可能影響資料傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快 更穩定。通過在網路各處放置cdn節點伺服器所構成的在現有的網際網路基礎之上的一層智慧型虛擬網路,cdn系統能夠...
CDN技術原理
內容分發網路 cdn 採用智慧型路由和流量管理技術,及時發現能夠給訪問者提供最快響應的加速節點,並將訪問者的請求導向到該加速節點,由該加速節點提供內容服務。利用內容分發與複製機制,cdn客戶不需要改動原來的 結構,只需修改少量的dns配置,就可以加速網路的響應速度。當使用者訪問了使用cdn服務的 時...
CDN技術學習
一 cdn介紹 cdn 通常被稱為內容分發網路content distribution network,有時也被稱作內容傳遞網路content delivery network 作為一種提高網路內容,其目的是通過在現有的internet中增加一層新的網路架構,將 的內容發布到最接近使用者的網路 邊緣...