傳統(tǒng)CDN撞上天花板
就時間而言,自誕生到成為互聯(lián)網(wǎng)企業(yè)的剛需,CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))僅用了20年。但在全世界CDN普及率不斷擴大的趨勢下,中國的普及率仍然相對低下。賽迪顧問的統(tǒng)計顯示,2015年,CDN在韓國的普及率達90%以上,在美國為80%以上,而這一數(shù)字在中國僅為50%左右。
盡管CDN已經(jīng)成網(wǎng)站服務(wù)的標配,但由于計費不透明、安全性等問題,影響了它在中國的普及。尤為突出的是,一些企業(yè)不愿采用CDN的原因在于緩存內(nèi)容更新的速度不能滿足其需求。
一般來說,通過自身的技術(shù)手段改善頁面,能在一定程度上避免內(nèi)容更新速度不及時的問題。例如,把網(wǎng)站做成動態(tài)形式,內(nèi)容就可以實時回源取得,無需依靠緩存。如果頁面的大部分內(nèi)容為靜態(tài),內(nèi)容分發(fā)就需要依靠緩存,而緩存的更新具有滯后性,這時網(wǎng)站內(nèi)容更新速度難以滿足企業(yè)的要求。例如,某新聞網(wǎng)站刊登的內(nèi)容一旦出現(xiàn)錯誤或者被黑客篡改,為避免更嚴重的事態(tài),全網(wǎng)內(nèi)容需要即時更新,那么傳統(tǒng)的CDN緩存機制就暴露出其更新速度慢的缺陷。
1
消息隊列的局限
在傳統(tǒng)CDN的緩存機制中,全網(wǎng)內(nèi)容更新基于消息隊列的形式實現(xiàn)。當內(nèi)容更新時,由一臺中心服務(wù)器管理上千臺設(shè)備,中心需要確認所有設(shè)備的狀態(tài)和跟蹤設(shè)備的推送情況,當設(shè)備失敗時需要重試。通過設(shè)備跟蹤、失敗重傳的方式,系統(tǒng)可以實現(xiàn)一次內(nèi)容在全網(wǎng)的更新完成。通常問題如下:
1. 內(nèi)容更新有可能同時涉及到數(shù)量龐大的URL,消息隊列處理一條URL所用時間一般在上萬毫秒級別,一次全網(wǎng)內(nèi)容的完整更新則需要數(shù)分鐘甚至數(shù)十分鐘,平均需要5分鐘左右,這樣的時間顯然無法滿足企業(yè)需求;
2. 一旦網(wǎng)絡(luò)出狀況,以目前的網(wǎng)絡(luò)實際狀況來看,傳統(tǒng)內(nèi)容更新方式有可能出現(xiàn)部分服務(wù)器在任務(wù)有效時間內(nèi)無法獲取更新。此時,中心收到跟蹤反饋后會重傳,最終效率還要再打折扣;
3. 消息隊列只通過任務(wù)開始的時間順序?qū)θ蝿?wù)進行排隊處理,而任務(wù)更新的緊迫程度往往和任務(wù)開始的時間順序不相符,這導致任務(wù)更新的不公平。
2
優(yōu)化路徑為何失敗
如果從精準度上針對消息隊列算法進行優(yōu)化,可以滿足企業(yè)對內(nèi)容更新速度的要求。目前可以實現(xiàn)的優(yōu)化路徑,一種是通過域名鏈,即DNS區(qū)域覆蓋的方式探知為客戶服務(wù)的設(shè)備。這樣可以只針對為客戶服務(wù)的設(shè)備進行內(nèi)容更新,更具精確性,因此減少了不必要的工作。另外,可以通過邊緣節(jié)點向中心服務(wù)器主動發(fā)出更新詢問的方式進行內(nèi)容更新。
這兩種優(yōu)化方式一般疊加使用,其效果可以將更新時間從5分鐘優(yōu)化至1分鐘左右。這種效果雖然顯著,但對于傳統(tǒng)企業(yè)來說,5分鐘或1分鐘都達不到對內(nèi)容即時更新的需求。
3
即時更新的突破口
SHAQUE技術(shù)由白山的技術(shù)團隊自主研發(fā),解決了傳統(tǒng)CDN技術(shù)上速度和效率不能兼得的問題。SHAQUE技術(shù)是借鑒蟻群效應(yīng)中的模擬進化算法和P2P對等技術(shù),利用智能優(yōu)化算法和peer節(jié)點的松散耦合性,使所有存儲服務(wù)器上的文件可以在極短的時間內(nèi)完成內(nèi)容更新,進而保障緩存服務(wù)器上的用戶不管在瀏覽還是在交互上都有質(zhì)的飛躍。
P2P是依賴于網(wǎng)絡(luò)中參與者的計算能力和帶寬,由多臺客戶端計算機通過直接交換,來共享計算機資源和服務(wù)的技術(shù)。在P2P架構(gòu)中,千萬臺彼此連接的計算機都處于對等的地位。網(wǎng)絡(luò)中的每臺計算機既充當網(wǎng)絡(luò)的請求者,又能對其它計算機的請求做出響應(yīng),提供資源和服務(wù)。
至今演進到了第三代的P2P技術(shù)是一種結(jié)構(gòu)性的分布式網(wǎng)絡(luò)架構(gòu),它適用于P2P的網(wǎng)絡(luò)結(jié)構(gòu)拓撲也逐漸變多。比較流行的有DHT結(jié)構(gòu)、樹形結(jié)構(gòu)和網(wǎng)狀結(jié)構(gòu)。SHAQUE技術(shù)利用的是雙層P2P網(wǎng)狀結(jié)構(gòu),其為P2P提供了最大的容忍性和動態(tài)適應(yīng)性。
全網(wǎng)設(shè)備按物理區(qū)域分成數(shù)個區(qū)域網(wǎng)絡(luò),每個區(qū)域網(wǎng)絡(luò)根據(jù)選舉算法選擇一個leader,同時將這些leader組成一個網(wǎng)絡(luò)。這樣一來,全網(wǎng)服務(wù)器都成為周圍服務(wù)器的中心,讓內(nèi)容病毒式擴散,再根據(jù)終止反饋使算法收斂,讓整個系統(tǒng)形成全中心結(jié)構(gòu)的無隊列消息推送機制,這時候?qū)τ谒袡C器來講,其收到更新內(nèi)容和反饋的時間就等于機器之間的TTL時間,一般在數(shù)毫秒到數(shù)十毫秒內(nèi)。
蟻群算法的基本思想是正反饋與分布式協(xié)作,單體通過簡單的指令選擇更好路徑,而這一選擇又使得整體路徑的被選擇機會更大,最終使整體涌現(xiàn)出最優(yōu)路徑選擇。蟻群算法是一種漸進式收斂算法,這種收斂算法的收斂速度與解的質(zhì)量遠遠高出其它搜索算法。SHAQUE技術(shù)融合蟻群算法,利用整體路徑優(yōu)化的特性,優(yōu)化內(nèi)容傳播的路徑,最終使每臺服務(wù)器都能不斷通過反饋得到其能推送到的最快服務(wù)器組。
4
推送1秒內(nèi)完成
借助SHAQUE技術(shù),白山的服務(wù)器每天可以處理上千萬條URL,每條的處理都在1秒之內(nèi)。
病毒式推送機制的缺點是當設(shè)備數(shù)量增多時全網(wǎng)更新速度會減慢。但經(jīng)過反復(fù)實驗,500臺設(shè)備的推送時間為600毫秒,千臺設(shè)備的推送時間是700毫秒。一般超大型CDN廠商的全網(wǎng)服務(wù)器為上萬臺,其速度仍然可控制在1秒之內(nèi)。
隨著設(shè)備的持續(xù)增加,SHAQUE智能識別模塊還可進行橫向擴展,即只推送給為客戶服務(wù)的設(shè)備,從而使SHAQUE技術(shù)長久保持“秒推”效果。