又拍云架構(gòu)師黃慧攀:又拍云CDN技術(shù)探秘

11月1日到3日,由InfoQ 主辦的全球軟件開發(fā)大會(huì)(簡稱QCon)在上海光大會(huì)展中心國際大酒店隆重召開,這是一次技術(shù)開發(fā)者的頂級盛宴,又拍云作為國內(nèi)最大的針對企業(yè)級的云服務(wù)平臺(tái),又拍云首席架構(gòu)師黃慧攀也受邀在會(huì)上分享《又拍云CDN技術(shù)架構(gòu)探秘》的主題。

分享過程中,黃慧攀著重介紹了又拍云的四大模塊--防盜鏈模塊,流量統(tǒng)計(jì)模塊,緩存調(diào)度模塊和防攻擊模塊。

防盜鏈模塊:防盜鏈模塊在Nginx啟動(dòng)時(shí)并沒有任何防盜鏈策略,但會(huì)到數(shù)據(jù)中心獲取一份完整的客戶域名列表,但針對某個(gè)空間域名的具體防盜鏈策略是未獲取的,而是在某個(gè)URL請求訪問過來的時(shí)候觸發(fā)策略更新動(dòng)作(該次請求只判斷是否是合法的空間域名,如果該URL的空間域名不在客戶列表上是不允許被訪問的),前往數(shù)據(jù)中心獲取該URL對應(yīng)空間域名的防盜鏈策略,并以自定好的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)于Nginx的共享內(nèi)存中,下次訪問該空間的所有URL都能檢索到對應(yīng)的防盜鏈策略。也就是說防盜鏈模塊是以按需被動(dòng)觸發(fā)、主動(dòng)更新的模式進(jìn)行操作,本地的防盜鏈策略不會(huì)跟數(shù)據(jù)中心保證嚴(yán)格一致,通常會(huì)延遲幾分鐘。因防盜鏈模塊會(huì)每間隔幾分鐘前往數(shù)據(jù)中心獲取一份防盜鏈策略更新的客戶列表,如檢測到某個(gè)空間域名的防盜鏈策略有更新,將把本地共享內(nèi)存中的對應(yīng)記錄標(biāo)記為“需更新”,當(dāng)該空間再次有訪問請求進(jìn)來的時(shí)候再主動(dòng)觸發(fā)一個(gè)更新操作。

流量統(tǒng)計(jì)模塊:為降低數(shù)據(jù)統(tǒng)計(jì)的數(shù)據(jù)量,我們采用先在前端進(jìn)行初步統(tǒng)計(jì)一個(gè)中間結(jié)果再交予數(shù)據(jù)中心進(jìn)行大匯總的模式。每個(gè)URL訪問請求進(jìn)入Nginx,將通過流量統(tǒng)計(jì)模塊并把該次請求的內(nèi)容大?。ㄈ纾?02400字節(jié))記錄到該請求對應(yīng)的空間域名記錄下,而不是直接就把這次請求的流量數(shù)字報(bào)到后端數(shù)據(jù)中心。在前端的流量統(tǒng)計(jì)模塊上暫時(shí)保留5分鐘的記錄,每隔5分鐘后進(jìn)行每個(gè)空間域名的匯總統(tǒng)計(jì),得到一個(gè)中間值再報(bào)入到數(shù)據(jù)中心進(jìn)行全部節(jié)點(diǎn)的匯總統(tǒng)計(jì)。這樣一來,數(shù)據(jù)量從幾百萬條記錄降低到每5分鐘幾百條記錄,那么在數(shù)據(jù)中心的匯總統(tǒng)計(jì)就相對簡單很多。

緩存調(diào)度模塊:調(diào)度模塊在Nginx共享內(nèi)存中存有幾百萬條URL信息,這些信息是標(biāo)記某個(gè)URL應(yīng)該調(diào)度到SSD磁盤或者SAS磁盤。這數(shù)百萬條記錄主要通過Nginx內(nèi)部提供的RbTree 算法進(jìn)行查找,百萬條記錄,最多只需20步就能定位到記錄。而我們在RbTree算法基礎(chǔ)上加入了LRU和MRU算法,以實(shí)現(xiàn)在固定范圍內(nèi)對這些URL進(jìn)行排序操作,當(dāng)某些URL訪問密度明顯大于其他URL時(shí),它將被調(diào)到SSD磁盤的Squid緩存進(jìn)行讀寫。

雖然每個(gè)訪問請求都會(huì)經(jīng)過緩存調(diào)度模塊的判斷,但模塊的判斷速度非常快,不會(huì)帶來任何延遲??蓪衢T內(nèi)容(占訪問總量70%以上)都被調(diào)度到SSD磁盤上讀取,明顯提高系統(tǒng)整體性能。

防攻擊模塊:該模塊核心算法跟緩存調(diào)度模塊類似,都是要對大量的URL進(jìn)行排序,對訪問量大的URL進(jìn)行判斷。如果某個(gè)URL的訪問頻密度超過正常閾值,系統(tǒng)將對此URL的所有請求進(jìn)行初步屏蔽處理(該次屏蔽以302重定向的方式進(jìn)行保護(hù),如果該次請求不是瀏覽器發(fā)起的正常訪問一般是不會(huì)識(shí)別302重定向信號(hào),從而可屏蔽掉機(jī)器刷新類型的攻擊),如情況還繼續(xù)惡化,系統(tǒng)將禁止該URL的訪問請求,每隔5分鐘再次審核該URL的請求量是否恢復(fù)到正常閾值,自動(dòng)判斷是否可以解除禁止。

黃慧攀還介紹:“雖然又拍云CDN系統(tǒng)的業(yè)務(wù)功能較傳統(tǒng)的CDN系統(tǒng)復(fù)雜,多了好幾個(gè)模塊運(yùn)算,但對訪問請求的處理耗時(shí)并沒產(chǎn)生影響,可忽略。并且使用到SSD固態(tài)硬盤來提供熱門內(nèi)容的緩存服務(wù),整體的服務(wù)處理能力還大大增加(前后對比,使用SSD固態(tài)硬盤后單臺(tái)服務(wù)器的服務(wù)能力提升了1倍多)。

整體系統(tǒng)分為三層,可充分降低數(shù)據(jù)中心的訪問壓力。我們還在第二層中間結(jié)點(diǎn)部署有圖片處理服務(wù)器和音頻處理服務(wù)器的集群,把一部分?jǐn)?shù)據(jù)中心工作向外擴(kuò),進(jìn)一步減輕壓力并能提高整體系統(tǒng)性能。

又拍云CDN系統(tǒng)上線正式投入服務(wù)到今已穩(wěn)定運(yùn)行3年多,較我們早年部署的CDN系統(tǒng)有了很大提升。未來我們還將繼續(xù)完善UpCDN系統(tǒng),在自動(dòng)化管理方面加大研發(fā)力度(這將涉及到服務(wù)器硬件、系統(tǒng)環(huán)境和軟件部署等方面,需制定軟硬件標(biāo)準(zhǔn)和完善的節(jié)點(diǎn)監(jiān)控系統(tǒng)),以實(shí)現(xiàn)一個(gè)智能化、自動(dòng)維護(hù)的CDN系統(tǒng)?!?/p>

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2013-11-11
又拍云架構(gòu)師黃慧攀:又拍云CDN技術(shù)探秘
11月1日到3日,由InfoQ 主辦的全球軟件開發(fā)大會(huì)(簡稱QCon)在上海光大會(huì)展中心國際大酒店隆重召開,這是一次技術(shù)開發(fā)者的頂級盛宴,又拍

長按掃碼 閱讀全文