專利名稱:一種內(nèi)容分發(fā)網(wǎng)絡(luò)中緩存共享的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實(shí)施例涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種內(nèi)容分發(fā)網(wǎng)絡(luò)中緩存共享的 方法及裝置。
背景技術(shù):
CDN(Content Delivery Network,內(nèi)容分發(fā)網(wǎng)絡(luò))通過在現(xiàn)有的IP傳輸網(wǎng)絡(luò)中增 加一層新的網(wǎng)絡(luò)架構(gòu),將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶終端的網(wǎng)絡(luò)“邊緣”,使得用戶終端 可以就近取得所需的內(nèi)容,提高用戶終端訪問網(wǎng)絡(luò)的響應(yīng)速度。在現(xiàn)有的⑶N網(wǎng)絡(luò)架構(gòu)中,包括⑶N路由設(shè)備、邊緣服務(wù)節(jié)點(diǎn)、區(qū)域緩存節(jié)點(diǎn)以 及中心存儲服務(wù)節(jié)點(diǎn)。為了提高網(wǎng)絡(luò)的可靠性和存儲容量,通常按照cluster(集群)的 方式部署邊緣服務(wù)節(jié)點(diǎn)和區(qū)域緩存節(jié)點(diǎn),即一個(gè)邊緣服務(wù)節(jié)點(diǎn)或者區(qū)域緩存節(jié)點(diǎn)是由多個(gè) cache (緩存服務(wù)器)構(gòu)成的cluster。現(xiàn)有技術(shù)中提出了一種cluster中cache共享策略。 當(dāng)用戶終端的業(yè)務(wù)請求通過CDN路由設(shè)備路由到合適的邊緣服務(wù)節(jié)點(diǎn)中的某個(gè)cache上, 當(dāng)該cache保存有用戶設(shè)備請求的內(nèi)容時(shí),稱為“命中”,直接為用戶設(shè)備提供相應(yīng)的業(yè)務(wù) 服務(wù);當(dāng)該cache沒有保存用戶設(shè)備請求的內(nèi)容時(shí),稱為“未命中”,則向其所在的cluster 中的其他cache發(fā)送查詢消息,以獲知其他cache是否保存有相應(yīng)的內(nèi)容,如果有,則從保 存有相應(yīng)內(nèi)容的cache中獲取內(nèi)容,如果所在的cluster中的cache均沒有保存相應(yīng)的內(nèi) 容,再向中心存儲服務(wù)節(jié)點(diǎn)請求內(nèi)容。目前有兩種實(shí)現(xiàn)cache共享的技術(shù)。其一是基于ICP Qnternet CacheProtocol, 互聯(lián)網(wǎng)緩存協(xié)議)協(xié)議實(shí)現(xiàn)cache共享CaChe在接收到業(yè)務(wù)請求后,如果發(fā)現(xiàn)本地沒有命 中,則向其所在的cluster中所有其他cache發(fā)送查詢消息。當(dāng)一個(gè)cluster中包含較多 的cache時(shí),這種實(shí)現(xiàn)方式占用過多的通信資源。且cache需要等待所有其他cache響應(yīng) 后進(jìn)行決策,因此,響應(yīng)時(shí)延較長,通信效率較低。其二是基于Cache Digest (緩存摘要) 協(xié)議實(shí)現(xiàn)cache共享CaChe用一個(gè)Bloom filter (布隆過濾器)來表現(xiàn)保存的內(nèi)容,每個(gè) cache都從鄰居cache獲得Bloom filter。當(dāng)某個(gè)cache收到業(yè)務(wù)請求后,如果發(fā)現(xiàn)本地 未命中,則通過查詢鄰居cache的摘要來決定是否從某個(gè)鄰居cache獲取內(nèi)容。由于摘要 占用空間較多,因此這種實(shí)現(xiàn)方式浪費(fèi)存儲空間。另外,cache摘要需要周期性維護(hù),如果 該周期設(shè)定較長,則無法準(zhǔn)確判斷鄰居cache保存的內(nèi)容,如果該周期設(shè)定較短,則由于頻 繁刷新造成系統(tǒng)性能下降。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供了一種內(nèi)容分發(fā)網(wǎng)絡(luò)中緩存共享的方法及裝置,從而提高系 統(tǒng)性能。本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的—種內(nèi)容分發(fā)網(wǎng)絡(luò)中緩存共享的方法,包括集群cluster中的第一緩存服務(wù)器cache接收到業(yè)務(wù)請求后,如果未命中,確定業(yè)務(wù)請求所請求的內(nèi)容所屬的內(nèi)容塊,其中,所述cluster處理的所有內(nèi)容被劃分為不同的 內(nèi)容塊;所述第一 cache根據(jù)預(yù)先生成的內(nèi)容塊與所述cluster中的cache之間的對應(yīng)關(guān) 系,確定負(fù)責(zé)處理所述內(nèi)容塊的第二 cache ;所述第一 cache向所述第二 cache發(fā)送查詢消息,以獲得所述業(yè)務(wù)請求所請求的 內(nèi)容。一種內(nèi)容分發(fā)網(wǎng)絡(luò)中緩存共享的方法,包括內(nèi)容分發(fā)網(wǎng)絡(luò)(Content Delivery Network,CDN)路由設(shè)備收到業(yè)務(wù)請求后,確定 負(fù)責(zé)處理所述業(yè)務(wù)請求所請求的內(nèi)容的cluster ;所述⑶N路由設(shè)備根據(jù)預(yù)先生成的所述cluster處理的內(nèi)容與內(nèi)容塊的對應(yīng)關(guān) 系,確定所述業(yè)務(wù)請求所請求的內(nèi)容所屬的內(nèi)容塊,其中,所述cluster處理的所有內(nèi)容被 劃分為不同的內(nèi)容塊;所述⑶N路由設(shè)備根據(jù)預(yù)先生成的內(nèi)容塊與所述cluster中的cache之間的對應(yīng) 關(guān)系,確定負(fù)責(zé)處理所述內(nèi)容塊的第一 cache ;所述⑶N路由設(shè)備向所述第一 cache轉(zhuǎn)發(fā)所述業(yè)務(wù)請求。一種內(nèi)容分發(fā)網(wǎng)絡(luò)中緩存共享的緩存服務(wù)器,包括命中判斷單元,用于判斷業(yè)務(wù)請求所請求的內(nèi)容是否命中,并在未命中時(shí),觸發(fā)查 找確定單元工作;查找確定單元,用于判斷所述內(nèi)容所屬的內(nèi)容塊,其中,所述緩存服務(wù)器所在的集 群cluster處理的所有內(nèi)容被劃分為不同的內(nèi)容塊;并根據(jù)內(nèi)容塊與所述cluster中的緩 存服務(wù)器cache之間的對應(yīng)關(guān)系,確定負(fù)責(zé)處理所述內(nèi)容塊的第二 cache ;消息發(fā)送單元,用于向所述第二 cache發(fā)送查詢消息,以獲得所述業(yè)務(wù)請求所請 求的內(nèi)容。一種內(nèi)容分發(fā)網(wǎng)絡(luò)中緩存共享的⑶N路由設(shè)備,包括路由單元,用于在收到業(yè)務(wù)請求后,確定負(fù)責(zé)處理所述業(yè)務(wù)請求所請求的內(nèi)容的 cluster ;根據(jù)預(yù)先生成的所述cluster處理的內(nèi)容與內(nèi)容塊的對應(yīng)關(guān)系,確定所述業(yè)務(wù)請 求所請求的內(nèi)容所屬的內(nèi)容塊,其中,所述cluster處理的所有內(nèi)容被劃分為不同的內(nèi)容 塊;并根據(jù)預(yù)先生成的內(nèi)容塊與所述cluster中的cache之間的對應(yīng)關(guān)系,確定負(fù)責(zé)處理所 述內(nèi)容塊的第一 cache ;請求發(fā)送單元,用于向所述第一 cache轉(zhuǎn)發(fā)所述業(yè)務(wù)請求。由上述本發(fā)明的實(shí)施例提供的技術(shù)方案可以看出,本發(fā)明實(shí)施例中,由于本發(fā)明 實(shí)施例提供的方法,僅向負(fù)責(zé)處理相同內(nèi)容塊的cache發(fā)送查詢消息,較之基于ICP協(xié)議的 cache共享方式,降低了響應(yīng)時(shí)延,提高了業(yè)務(wù)請求處理速度。另外,由于本發(fā)明實(shí)施例提 供的方法中,通過查找內(nèi)容塊與cache的對應(yīng)關(guān)系判斷向哪些cache發(fā)送查詢消息,內(nèi)容塊 與cache的對應(yīng)關(guān)系所占的存儲空間較之Bloom filter要小很多,因此,本發(fā)明實(shí)施例較 之基于cache digest協(xié)議的cache共享方式,降低了內(nèi)存開銷和查找開銷。
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對 于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得 其他的附圖。圖1為本發(fā)明實(shí)施例提供的方法流程圖;圖2為本發(fā)明實(shí)施例提供的⑶N網(wǎng)絡(luò)架構(gòu)示意圖;圖3為本發(fā)明實(shí)施例一提供的方法流程圖;圖4為本發(fā)明實(shí)施例提供的裝置結(jié)構(gòu)示意圖;圖5為本發(fā)明實(shí)施例提供的另一種裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于 本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明實(shí)施例提供一種內(nèi)容分發(fā)網(wǎng)絡(luò)中緩存共享的實(shí)現(xiàn)方式,在該實(shí)現(xiàn)方式中, ⑶N路由設(shè)備通過靜態(tài)配置或動(dòng)態(tài)生成,并將一個(gè)cluster負(fù)責(zé)處理的所有內(nèi)容劃分為多 個(gè)獨(dú)立的內(nèi)容塊(不同的內(nèi)容塊可以通過編號加以區(qū)分,還可以通過其他標(biāo)識信息加以 區(qū)分)。當(dāng)采用靜態(tài)配置的方式時(shí),還保存每個(gè)cluster負(fù)責(zé)處理的內(nèi)容與內(nèi)容塊之間的 對應(yīng)關(guān)系。作為舉例而非限定,CDN路由設(shè)備將一個(gè)cluster負(fù)責(zé)處理的所有內(nèi)容劃分 為1 個(gè)獨(dú)立的內(nèi)容塊,編號分別為1 128,并分別為每個(gè)內(nèi)容塊指定對應(yīng)的內(nèi)容,具體 可以根據(jù)操作人員輸入的指令來靜態(tài)配置內(nèi)容與內(nèi)容塊的對應(yīng)關(guān)系,也可以根據(jù)預(yù)先設(shè) 定的算法動(dòng)態(tài)生成內(nèi)容與內(nèi)容塊的對應(yīng)關(guān)系。本發(fā)明實(shí)施例提供一種CDN路由設(shè)備將一 個(gè)cluster負(fù)責(zé)處理的所有內(nèi)容劃分為不同內(nèi)容塊的具體實(shí)現(xiàn)方式預(yù)先確定內(nèi)容塊的數(shù) 量;對cluster負(fù)責(zé)處理的每個(gè)內(nèi)容的URL (Universal Resource Locator,統(tǒng)一資源定位 符)或者域名分別計(jì)算MD5 (Message Digest Algorithm,消息摘要算法第5版)值;將計(jì) 算得到的每個(gè)MD5值分別對內(nèi)容塊的數(shù)量求模,其計(jì)算結(jié)果就是每個(gè)內(nèi)容所屬的內(nèi)容塊編 號。通過上述過程對內(nèi)容進(jìn)行劃分,也通過上述過程查找內(nèi)容所屬的內(nèi)容塊編號。當(dāng)將cluster負(fù)責(zé)處理的所有內(nèi)容劃分為多個(gè)獨(dú)立的內(nèi)容塊后,⑶N路由設(shè)備針 對每個(gè)cluster進(jìn)一步通過靜態(tài)配置或者動(dòng)態(tài)生成的方式建立內(nèi)容塊與cache之間的對應(yīng) 關(guān)系,具體是CDN路由設(shè)備為cluster中的每個(gè)cache指定一個(gè)或多個(gè)內(nèi)容塊(相應(yīng)的, cache負(fù)責(zé)處理為其指定的內(nèi)容塊對應(yīng)的內(nèi)容)。CDN路由設(shè)備還可以保存內(nèi)容塊與cache 之間的對應(yīng)關(guān)系。其中,一個(gè)cache可對應(yīng)多個(gè)內(nèi)容塊,一個(gè)內(nèi)容塊也可對應(yīng)多個(gè)cache。 如果某個(gè)cache出現(xiàn)過載或者出現(xiàn)故障等情況時(shí),CDN路由設(shè)備可將該cache對應(yīng)的內(nèi)容 塊分配給同一 cluster中的其他cache。可見,內(nèi)容塊與cache的對應(yīng)關(guān)系是動(dòng)態(tài)調(diào)整的。 相應(yīng)的,CDN在保存內(nèi)容塊與cache之間的對應(yīng)關(guān)系時(shí),還記錄每條對應(yīng)關(guān)系的生效時(shí)間信 息。該生效時(shí)間是cache負(fù)責(zé)處理對應(yīng)的內(nèi)容塊的內(nèi)容的時(shí)間段,可以是絕對時(shí)間,也可以 是相對時(shí)間,該生效時(shí)間信息具體包括當(dāng)前對應(yīng)關(guān)系的服務(wù)持續(xù)時(shí)間,和歷史對應(yīng)關(guān)系的 服務(wù)持續(xù)時(shí)間和服務(wù)結(jié)束時(shí)間。本發(fā)明實(shí)施例提供的基于上述內(nèi)容塊與cache之間的對應(yīng)關(guān)系的cache共享方法如圖1所示,包括如下操作在⑶N路由設(shè)備側(cè)SlOU⑶N路由設(shè)備收到業(yè)務(wù)請求后,確定負(fù)責(zé)處理業(yè)務(wù)請求所請求的內(nèi)容的 cluster ;其中,如果有不止一個(gè)cluster負(fù)責(zé)處理上述業(yè)務(wù)請求所請求的內(nèi)容,則⑶N路由 設(shè)備可以根據(jù)預(yù)先設(shè)定的路由規(guī)則從中選定一個(gè)cluster。S102、⑶N路由設(shè)備根據(jù)預(yù)先生成的上述cluster處理的內(nèi)容與內(nèi)容塊的對應(yīng)關(guān) 系,確定業(yè)務(wù)請求所請求的內(nèi)容所屬的內(nèi)容塊;S103、⑶N路由設(shè)備根據(jù)預(yù)先生成的內(nèi)容塊與上述cluster中的cache之間的對 應(yīng)關(guān)系,確定負(fù)責(zé)處理上述內(nèi)容塊的cache (稱該cache為第一 cache);其中,如果有不止一個(gè)cache負(fù)責(zé)處理上述內(nèi)容塊,則⑶N路由設(shè)備可以根據(jù)預(yù)先 設(shè)定的路由規(guī)則從中第一 cache。作為舉例而非限定,可以從中選擇負(fù)載最輕的作為第一 cache。S104、⑶N路由設(shè)備向上述第一 cache轉(zhuǎn)發(fā)上述業(yè)務(wù)請求;在 cache 側(cè)S105、上述第一 cache接收到上述業(yè)務(wù)請求后,如果未命中,確定業(yè)務(wù)請求所請求 的內(nèi)容所屬的內(nèi)容塊;作為舉例而非限定,如果⑶N路由設(shè)備通過靜態(tài)配置將每個(gè)cluster負(fù)責(zé)處理的 所有內(nèi)容劃分為多個(gè)內(nèi)容塊,則將每個(gè)cluster負(fù)責(zé)處理的內(nèi)容與內(nèi)容塊的對應(yīng)關(guān)系下發(fā) 給相應(yīng)的各個(gè)cluster下的每個(gè)cache?;蛘?,第一 cache可以通過全局配置的方式獲知 ⑶N路由設(shè)備為第一 cache所在的cluster建立的內(nèi)容與內(nèi)容塊的對應(yīng)關(guān)系?;蛘?,當(dāng)⑶N 路由設(shè)備基于MD5值為每個(gè)cluster配置內(nèi)容與內(nèi)容塊的對應(yīng)關(guān)系,則cache可通過全局 配置的方式獲知所在的cluster對應(yīng)的內(nèi)容塊數(shù)量,進(jìn)而基于MD5值建立內(nèi)容與內(nèi)容塊的 對應(yīng)關(guān)系。S106、上述第一 cache根據(jù)內(nèi)容塊與上述cluster中的cache之間的對應(yīng)關(guān)系,確 定負(fù)責(zé)處理所述內(nèi)容塊的cache (稱為第二 cache);S107、上述cache向查找到的cache發(fā)送查詢消息。上述本發(fā)明實(shí)施例提供的方法中,定義了內(nèi)容與內(nèi)容塊的對應(yīng)關(guān)系、內(nèi)容塊與 cache的對應(yīng)關(guān)系。當(dāng)⑶N路由設(shè)備選中的cache未命中時(shí),可向同一 cluster中負(fù)責(zé)處 理相同內(nèi)容塊其他cache發(fā)送查詢消息,來查詢這個(gè)或這些cache中是否保存有業(yè)務(wù)請求 的內(nèi)容,實(shí)現(xiàn)了 cache共享。且由于本發(fā)明實(shí)施例提供的方法,僅向負(fù)責(zé)處理相同內(nèi)容塊的 cache發(fā)送查詢消息,較之基于ICP協(xié)議的cache共享方式,降低了響應(yīng)時(shí)延,提高了業(yè)務(wù)請 求處理速度。另外,由于本發(fā)明實(shí)施例提供的方法中,通過查找內(nèi)容塊與cache的對應(yīng)關(guān)系 判斷向哪些cache發(fā)送查詢消息,內(nèi)容塊與cache的對應(yīng)關(guān)系所占的存儲空間較之Bloom filter要小很多,因此,本發(fā)明實(shí)施例較之基于cache digest協(xié)議的cache共享方式,降低 了內(nèi)存開銷和查找開銷。在上述S106中提到的內(nèi)容塊與cluster中cache之間的對應(yīng)關(guān)系為上述接收到 業(yè)務(wù)請求的cache預(yù)先獲取的,獲取方式可以但不僅限于如下兩種(一)上述第一cache從⑶N路由設(shè)備獲得上述內(nèi)容塊與上述cluster中的cache之間的對應(yīng)關(guān)系。在第(一)種實(shí)現(xiàn)方式中,第一 cache可以但不僅限于在啟動(dòng)后向CDN路由設(shè)備 發(fā)送請求消息,以獲得所在的cluster的內(nèi)容塊與cache之間的對應(yīng)關(guān)系?;蛘撸€可以 但不僅限于由⑶N路由設(shè)備在感知第一 cache啟動(dòng)后,向第一 cache下發(fā)該cache所在的 cluster的內(nèi)容塊與cache之間的對應(yīng)關(guān)系。由于內(nèi)容塊與cache之間的對應(yīng)關(guān)系是動(dòng)態(tài)調(diào)整的,且cache并不會(huì)立即緩存剛 剛處理過的內(nèi)容,也不會(huì)立即刪除不再負(fù)責(zé)處理的內(nèi)容,因此,如果當(dāng)前生效的內(nèi)容塊與 cache之間的對應(yīng)關(guān)系服務(wù)持續(xù)時(shí)間較短時(shí),可考慮向曾經(jīng)負(fù)責(zé)處理上述內(nèi)容塊的cache 發(fā)送查詢消息,以提高查詢的命中概率。相應(yīng)的,根據(jù)保存的生效時(shí)間信息,CDN路由設(shè)備可 以將當(dāng)前生效的內(nèi)容塊與cache的對應(yīng)關(guān)系下發(fā)給cache ;也可以將保存的所有內(nèi)容塊與 cache的對應(yīng)關(guān)系發(fā)送給cache ;還可以先判斷當(dāng)前生效的內(nèi)容塊與cache的對應(yīng)關(guān)系的服 務(wù)持續(xù)時(shí)間是否大于預(yù)先設(shè)定的閾值,如果是,則僅發(fā)送當(dāng)前生效的內(nèi)容塊與cache之間 的對應(yīng)關(guān)系,否則,還發(fā)送內(nèi)容塊與cache的對應(yīng)關(guān)系歷史信息,以及每條對應(yīng)關(guān)系的生效 時(shí)間信息。該設(shè)定的閾值可根據(jù)cache容量、數(shù)據(jù)流量等參數(shù)進(jìn)行設(shè)定。( 二)上述第一 cache從上述cluster中的其他cache獲得各個(gè)cache與內(nèi)容塊 的對應(yīng)關(guān)系。在第(二)種實(shí)現(xiàn)方式中,cluster中的每個(gè)cache保存并維護(hù)該cache與 cluster中內(nèi)容塊之間的對應(yīng)關(guān)系。其中,cache不僅保存與當(dāng)前負(fù)責(zé)處理的內(nèi)容塊之間的 對應(yīng)關(guān)系,還保存與曾經(jīng)負(fù)責(zé)處理的內(nèi)容塊之間的對應(yīng)關(guān)系(即對應(yīng)關(guān)系的歷史信息)。相 應(yīng)的,在向其他cache發(fā)送本地保存的內(nèi)容塊與cache的對應(yīng)關(guān)系時(shí),可以發(fā)送當(dāng)前生效的 內(nèi)容塊與cache的對應(yīng)關(guān)系;也可以發(fā)送保存的所有內(nèi)容塊與cache的對應(yīng)關(guān)系;還可以 先判斷當(dāng)前生效的內(nèi)容塊與cache的對應(yīng)關(guān)系的建立時(shí)間是否大于預(yù)先設(shè)定的閾值,如果 是,則僅發(fā)送當(dāng)前生效的內(nèi)容塊與cache之間的對應(yīng)關(guān)系,否則,還發(fā)送內(nèi)容塊與cache的 對應(yīng)關(guān)系歷史信息,以及每條對應(yīng)關(guān)系的生效時(shí)間信息。另外,cache可以但不僅限于在啟動(dòng)后,向同一 cluster中的其他cache請求獲得 各個(gè)cache保存的與內(nèi)容塊的對應(yīng)關(guān)系;也可以是,cache在啟動(dòng)后或者與內(nèi)容塊的對應(yīng)關(guān) 系更新后,向同一 cluster中的其他cache發(fā)送本地保存的與內(nèi)容塊的對應(yīng)關(guān)系?;谏鲜鰞煞N實(shí)現(xiàn)方式,S106中,第一 cache根據(jù)所在的cluster的內(nèi)容塊與 cache之間的對應(yīng)關(guān)系,查找負(fù)責(zé)處理所述內(nèi)容塊的第二 cache的具體實(shí)現(xiàn)方式可以是根 據(jù)當(dāng)前生效的內(nèi)容塊與cache的對應(yīng)關(guān)系,查找當(dāng)前負(fù)責(zé)處理所述內(nèi)容塊的cache ;如果查 找到的當(dāng)前負(fù)責(zé)處理所述內(nèi)容塊的cache的服務(wù)持續(xù)時(shí)間大于預(yù)先設(shè)定的第一閾值(則查 找到的cache中緩存有業(yè)務(wù)請求的內(nèi)容的概率較大),確定查找到的cache為第二 cache ; 如果查找到的當(dāng)前負(fù)責(zé)處理所述內(nèi)容塊的cache的服務(wù)持續(xù)時(shí)間小于預(yù)先設(shè)定的第一閾 值,則根據(jù)所述內(nèi)容塊與所述cluster中的cache之間的對應(yīng)關(guān)系,查找曾經(jīng)負(fù)責(zé)處理所述 內(nèi)容塊的cache,并根據(jù)曾經(jīng)負(fù)責(zé)處理所述內(nèi)容塊的cache的服務(wù)持續(xù)時(shí)間和服務(wù)結(jié)束時(shí) 間,從查找到的曾經(jīng)負(fù)責(zé)處理所述內(nèi)容塊的cache中確定第二 CaChe(其中,服務(wù)持續(xù)時(shí)間 較長、服務(wù)結(jié)束時(shí)間距離當(dāng)前時(shí)間較短的cache中緩存有業(yè)務(wù)請求所請求的內(nèi)容的概率較 大)。由于每臺cache的容量有限,cache并不會(huì)緩存所有由其負(fù)責(zé)處理的內(nèi)容,而是根據(jù)熱度替換算法計(jì)算內(nèi)容的熱度,并將熱度較高的內(nèi)容緩存。因此,在上述S107后,上述第 一 cache獲得業(yè)務(wù)請求的內(nèi)容,判斷監(jiān)測到的上述第二 cache的負(fù)載狀況,如果該負(fù)載狀況 小于預(yù)先設(shè)定的負(fù)載門限值,則降低所述內(nèi)容的緩存熱度,以降低緩存所述內(nèi)容的概率,否 則,增大所述內(nèi)容的緩存熱度,以增大緩存所述內(nèi)容的概率。其中,同一 cluster中的各個(gè) cache可以但不僅限于兩兩之間通過負(fù)載心跳計(jì)算的方式相互監(jiān)測負(fù)載情況。在本發(fā)明實(shí)施例中,如果有兩個(gè)以上cache負(fù)責(zé)處理同一內(nèi)容塊的不同內(nèi)容,則 可以基于熱度替換算法,使得不同cache分別緩存同一內(nèi)容塊的不同內(nèi)容,且熱度高的內(nèi) 容在多臺cache上緩存,熱度低的內(nèi)容在一臺cache上緩存,以提高cache容量的利用率, 且保證了 cluster本地命中的概率,減少了響應(yīng)時(shí)間。其具體實(shí)現(xiàn)方式如下在上述S107之后,上述接收到業(yè)務(wù)請求的cache從上述指定的cache獲得業(yè)務(wù)請 求的內(nèi)容;對該內(nèi)容進(jìn)行熱度替換計(jì)算;判斷監(jiān)測到的上述指定的cache的負(fù)載狀況,如果 該負(fù)載狀況小于預(yù)先設(shè)定的負(fù)載門限值,則使用小于1的加權(quán)因子對計(jì)算結(jié)果進(jìn)行加權(quán)處 理,從而延緩了緩存從同cluster內(nèi)的其它c(diǎn)ache獲取的內(nèi)容的時(shí)間,否則,使用大于1的 加權(quán)因子對計(jì)算結(jié)果進(jìn)行加權(quán)處理,加快從該cache獲取的內(nèi)容進(jìn)緩存的時(shí)間,盡快分?jǐn)?該cache的負(fù)載。下面將對本發(fā)明實(shí)施例在實(shí)際應(yīng)用過程中的具體實(shí)現(xiàn)方式進(jìn)行詳細(xì)的說明。在圖2所示的CDN網(wǎng)絡(luò)架構(gòu)中,cluster A由四個(gè)cache (分別是cachel、cache2、 CaChe3,和cached組成;上級節(jié)點(diǎn)可以是區(qū)域緩存節(jié)點(diǎn),也可以是中心節(jié)點(diǎn)。實(shí)施例一實(shí)施例一以圖2所示的⑶N網(wǎng)絡(luò)架構(gòu)為例,對cache共享方式進(jìn)行詳細(xì)說明。其 中,⑶N路由設(shè)備基于MD5值為每個(gè)與其連接的cluster負(fù)責(zé)處理的內(nèi)容劃分內(nèi)容塊。以 表格的形式維護(hù)與其連接的每個(gè)cluster的內(nèi)容塊與cache之間的對應(yīng)關(guān)系,作為舉例而 非限定,基于每個(gè)cluster,可以針對每個(gè)內(nèi)容塊維護(hù)一張攜帶相對生效時(shí)間信息的對應(yīng)關(guān) 系表,該表如表1所示
權(quán)利要求
1.一種內(nèi)容分發(fā)網(wǎng)絡(luò)中緩存共享的方法,其特征在于,包括集群cluster中的第一緩存服務(wù)器cache接收到業(yè)務(wù)請求后,如果未命中,確定業(yè)務(wù)請 求所請求的內(nèi)容所屬的內(nèi)容塊,其中,所述cluster處理的所有內(nèi)容被劃分為不同的內(nèi)容 塊;所述第一 cache根據(jù)預(yù)先生成的內(nèi)容塊與所述cluster中的cache之間的對應(yīng)關(guān)系, 確定負(fù)責(zé)處理所述內(nèi)容塊的第二 cache ;所述第一 cache向所述第二 cache發(fā)送查詢消息,以獲得所述業(yè)務(wù)請求所請求的內(nèi)容。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述cluster處理的所有內(nèi)容被劃分為不 同的內(nèi)容塊包括預(yù)先確定所述內(nèi)容塊的數(shù)量;對所述cluster處理的每個(gè)內(nèi)容的統(tǒng)一資源定位符(Universal ResourceLocator, URL)或者域名分別計(jì)算消息摘要算法第5版(Message DigestAlgorithm, MD5)值;將計(jì)算得到的每個(gè)所述MD5值分別對內(nèi)容塊的數(shù)量求模,以所計(jì)算的結(jié)果作為每個(gè)所 述內(nèi)容塊的編號。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述確定業(yè)務(wù)請求所請求的內(nèi)容所屬的 內(nèi)容塊包括對所述業(yè)務(wù)請求所請求的內(nèi)容的URL或域名計(jì)算MD5值,并基于MD5值確定所述業(yè)務(wù) 請求所請求的內(nèi)容所屬的內(nèi)容塊。
4.根據(jù)權(quán)利要求1 3任意一項(xiàng)所述的方法,其特征在于,該方法還包括所述第一 cache從內(nèi)容分發(fā)網(wǎng)絡(luò)(Content Delivery Network, CDN)路由設(shè)備獲得所 述內(nèi)容塊與所述cluster中的cache之間的對應(yīng)關(guān)系,并獲得當(dāng)前對應(yīng)關(guān)系的服務(wù)持續(xù)時(shí) 間,和歷史對應(yīng)關(guān)系的服務(wù)持續(xù)時(shí)間和服務(wù)結(jié)束時(shí)間;或者,所述第一 cache從所述cluster中的其他cache獲得各個(gè)cache與內(nèi)容塊的對應(yīng)關(guān)系, 并獲得當(dāng)前對應(yīng)關(guān)系的服務(wù)持續(xù)時(shí)間,和歷史對應(yīng)關(guān)系的服務(wù)持續(xù)時(shí)間和服務(wù)結(jié)束時(shí)間。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)內(nèi)容塊與所述cluster中的 cache的對應(yīng)關(guān)系,確定負(fù)責(zé)處理所述內(nèi)容塊的第二 cache包括根據(jù)所述內(nèi)容塊與所述cluster中的cache之間的對應(yīng)關(guān)系,查找當(dāng)前負(fù)責(zé)處理所述 內(nèi)容塊的cache ;如果查找到的當(dāng)前負(fù)責(zé)處理所述內(nèi)容塊的cache的服務(wù)持續(xù)時(shí)間大于預(yù)先設(shè)定的第 一閾值,則確定查找到的cache為第二 cache ;如果查找到的當(dāng)前負(fù)責(zé)處理所述內(nèi)容塊的cache的服務(wù)持續(xù)時(shí)間小于預(yù)先設(shè)定的第 一閾值,則根據(jù)所述內(nèi)容塊與所述cluster中的cache之間的對應(yīng)關(guān)系,查找曾經(jīng)負(fù)責(zé)處理 所述內(nèi)容塊的cache,并根據(jù)曾經(jīng)負(fù)責(zé)處理所述內(nèi)容塊的cache的服務(wù)持續(xù)時(shí)間和服務(wù)結(jié) 束時(shí)間,從查找到的曾經(jīng)負(fù)責(zé)處理所述內(nèi)容塊的cache中確定第二 cache。
6.根據(jù)權(quán)利要求1 3任意一項(xiàng)所述的方法,其特征在于,該方法還包括所述第一 cache獲得業(yè)務(wù)請求的內(nèi)容后,判斷監(jiān)測到的所述第二 cache的負(fù)載狀況,如 果所述負(fù)載狀況小于預(yù)先設(shè)定的負(fù)載門限值,則降低所述內(nèi)容的緩存熱度,以降低緩存所 述內(nèi)容的概率,否則,增大所述內(nèi)容的緩存熱度,以增大緩存所述內(nèi)容的概率。
7.一種內(nèi)容分發(fā)網(wǎng)絡(luò)中緩存共享的方法,其特征在于,包括內(nèi)容分發(fā)網(wǎng)絡(luò)(Content Delivery Network,CDN)路由設(shè)備收到業(yè)務(wù)請求后,確定負(fù)責(zé) 處理所述業(yè)務(wù)請求所請求的內(nèi)容的cluster ;所述CDN路由設(shè)備根據(jù)預(yù)先為所述cluster配置的內(nèi)容與內(nèi)容塊的對應(yīng)關(guān)系,確定所 述業(yè)務(wù)請求所請求的內(nèi)容所屬的內(nèi)容塊,其中,所述cluster處理的所有內(nèi)容被劃分為不 同的內(nèi)容塊;所述CDN路由設(shè)備根據(jù)預(yù)先生成的內(nèi)容塊與所述cluster中的cache之間的對應(yīng)關(guān) 系,確定負(fù)責(zé)處理所述內(nèi)容塊的第一 cache ;所述CDN路由設(shè)備向所述第一 cache轉(zhuǎn)發(fā)所述業(yè)務(wù)請求。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述cluster處理的所有內(nèi)容被劃分為不 同的內(nèi)容塊包括預(yù)先確定所述內(nèi)容塊的數(shù)量;對所述cluster處理的每個(gè)內(nèi)容的統(tǒng)一資源定位符(Universal ResourceLocator, URL)或者域名分別計(jì)算消息摘要算法第5版(Message DigestAlgorithm, MD5)值;將計(jì)算得到的每個(gè)所述MD5值分別對內(nèi)容塊的數(shù)量求模,以所計(jì)算的結(jié)果作為每個(gè)所 述內(nèi)容塊的編號。
9.根據(jù)權(quán)利要求7或8所述的方法,其特征在于,該方法還包括所述⑶N路由設(shè)備針對與所述⑶N路由設(shè)備連接的cluster,建立內(nèi)容塊與cache之間 的對應(yīng)關(guān)系,并記錄每條對應(yīng)關(guān)系的生效時(shí)間信息,所述生效時(shí)間信息包括當(dāng)前對應(yīng)關(guān)系 的服務(wù)持續(xù)時(shí)間,和歷史對應(yīng)關(guān)系的服務(wù)持續(xù)時(shí)間和服務(wù)結(jié)束時(shí)間。
10.一種內(nèi)容分發(fā)網(wǎng)絡(luò)中緩存共享的緩存服務(wù)器,其特征在于,包括命中判斷單元,用于判斷業(yè)務(wù)請求所請求的內(nèi)容是否命中,并在未命中時(shí),觸發(fā)查找確 定單元工作;查找確定單元,用于判斷所述內(nèi)容所屬的內(nèi)容塊,其中,所述緩存服務(wù)器所在的集 群cluster處理的所有內(nèi)容被劃分為不同的內(nèi)容塊;并根據(jù)預(yù)先生成的內(nèi)容塊與所述 cluster中的緩存服務(wù)器cache之間的對應(yīng)關(guān)系,確定負(fù)責(zé)處理所述內(nèi)容塊的第二 cache ;消息發(fā)送單元,用于向所述第二 cache發(fā)送查詢消息,以獲得所述業(yè)務(wù)請求所請求的 內(nèi)容。
11.根據(jù)權(quán)利要求10所述的緩存服務(wù)器,其特征在于,所述緩存服務(wù)器還包括第一對 應(yīng)關(guān)系獲取單元,或第二對應(yīng)關(guān)系獲取單元所述第一對應(yīng)關(guān)系獲取單元,用于從第一 cache從內(nèi)容分發(fā)網(wǎng)絡(luò)(ContentDelivery Network,CDN)路由設(shè)備獲得所述內(nèi)容塊與所述cluster中的cache之間的對應(yīng)關(guān)系,并獲 得當(dāng)前對應(yīng)關(guān)系的服務(wù)持續(xù)時(shí)間,和歷史對應(yīng)關(guān)系的服務(wù)持續(xù)時(shí)間和服務(wù)結(jié)束時(shí)間;所述第二對應(yīng)關(guān)系獲取單元,用于從所述cluster中的其他cache獲得各個(gè)cache與 內(nèi)容塊的對應(yīng)關(guān)系,并獲得當(dāng)前對應(yīng)關(guān)系的服務(wù)持續(xù)時(shí)間時(shí)間,和歷史對應(yīng)關(guān)系的服務(wù)持 續(xù)時(shí)間和服務(wù)結(jié)束時(shí)間。
12.根據(jù)權(quán)利要求10或11所述的緩存服務(wù)器,其特征在于,所述查找確定單元具體 用于根據(jù)所述內(nèi)容塊與所述cluster中的cache之間的對應(yīng)關(guān)系,查找當(dāng)前負(fù)責(zé)處理所 述內(nèi)容塊的cache ;如果查找到的當(dāng)前負(fù)責(zé)處理所述內(nèi)容塊的cache的服務(wù)持續(xù)時(shí)間大于 預(yù)先設(shè)定的第一閾值,則確定查找到的cache為第二 cache ;如果查找到的當(dāng)前負(fù)責(zé)處理所述內(nèi)容塊的cache的服務(wù)持續(xù)時(shí)間小于預(yù)先設(shè)定的第一閾值,則根據(jù)所述內(nèi)容塊與所述 cluster中的cache之間的對應(yīng)關(guān)系,查找曾經(jīng)負(fù)責(zé)處理所述內(nèi)容塊的cache,并根據(jù)曾經(jīng) 負(fù)責(zé)處理所述內(nèi)容塊的cache的服務(wù)持續(xù)時(shí)間和服務(wù)結(jié)束時(shí)間,從查找到的曾經(jīng)負(fù)責(zé)處理 所述內(nèi)容塊的cache中確定第二 cache。
13.根據(jù)權(quán)利要求10或11所述的緩存服務(wù)器,其特征在于,所述緩存服務(wù)器還包括內(nèi) 容緩存單元用于獲得業(yè)務(wù)請求的內(nèi)容后,判斷監(jiān)測到的所述第二 cache的負(fù)載狀況,如果 所述負(fù)載狀況小于預(yù)先設(shè)定的負(fù)載門限值,則降低所述內(nèi)容的緩存熱度,以降低緩存所述 內(nèi)容的概率,否則,增大所述內(nèi)容的緩存熱度,以增大緩存所述內(nèi)容的概率。
14.一種內(nèi)容分發(fā)網(wǎng)絡(luò)中緩存共享的⑶N路由設(shè)備,其特征在于,包括路由單元,用于在收到業(yè)務(wù)請求后,確定負(fù)責(zé)處理所述業(yè)務(wù)請求所請求的內(nèi)容的 cluster ;根據(jù)預(yù)先生成的所述cluster處理的內(nèi)容與內(nèi)容塊的對應(yīng)關(guān)系,確定所述業(yè)務(wù)請 求所請求的內(nèi)容所屬的內(nèi)容塊,其中,所述cluster處理的所有內(nèi)容被劃分為不同的內(nèi)容 塊;并根據(jù)預(yù)先生成的內(nèi)容塊與所述cluster中的cache之間的對應(yīng)關(guān)系,確定負(fù)責(zé)處理所 述內(nèi)容塊的第一 cache ;請求發(fā)送單元,用于向所述第一 cache轉(zhuǎn)發(fā)所述業(yè)務(wù)請求。
15.根據(jù)權(quán)利要求14所述的CDN路由設(shè)備,其特征在于,所述CDN路由設(shè)備還包括內(nèi) 容塊劃分單元,用于預(yù)先確定所述內(nèi)容塊的數(shù)量;對所述cluster處理的每個(gè)內(nèi)容的統(tǒng)一 資源定位符(Universal Resource Locator, URL)或者域名分別計(jì)算消息摘要算法第5版 (Message Digest Algorithm,MD5)值;將計(jì)算得到的每個(gè)所述MD5值分別對內(nèi)容塊的數(shù)量 求模,以所計(jì)算的結(jié)果作為每個(gè)所述內(nèi)容塊的編號。
16.根據(jù)權(quán)利要求14或15所述的CDN路由設(shè)備,其特征在于,所述CDN路由設(shè)備還包 括對應(yīng)關(guān)系建立單元和對應(yīng)關(guān)系發(fā)送單元所述對應(yīng)關(guān)系建立單元用于針對與所述CDN路由設(shè)備連接的cluster,建立內(nèi)容塊與 cache之間的對應(yīng)關(guān)系,并記錄每條對應(yīng)關(guān)系的生效時(shí)間信息,所述生效時(shí)間信息包括當(dāng) 前對應(yīng)關(guān)系的服務(wù)持續(xù)時(shí)間,和歷史對應(yīng)關(guān)系的服務(wù)持續(xù)時(shí)間和服務(wù)結(jié)束時(shí)間;所述對應(yīng)關(guān)系發(fā)送單元用于將所述建立的內(nèi)容塊與cache之間的對應(yīng)關(guān)系和對應(yīng)的 生效時(shí)間信息發(fā)送給對應(yīng)的cluster中的每個(gè)cache。
全文摘要
一種內(nèi)容分發(fā)網(wǎng)絡(luò)中緩存共享的方法,包括集群中的第一緩存接收到業(yè)務(wù)請求后,如果未命中,確定業(yè)務(wù)請求的內(nèi)容所屬的內(nèi)容塊;第一緩存根據(jù)內(nèi)容塊與集群中的緩存之間的對應(yīng)關(guān)系,確定負(fù)責(zé)處理該內(nèi)容塊的第二緩存;第一緩存向第二緩存發(fā)送查詢消息,以獲得該內(nèi)容。本發(fā)明實(shí)施例還提供了一種緩存共享裝置。由于僅向負(fù)責(zé)處理相同內(nèi)容塊的緩存發(fā)送查詢消息,較之基于ICP協(xié)議的緩存共享方式,降低了響應(yīng)時(shí)延,提高了業(yè)務(wù)請求處理速度。另外,由于通過查找內(nèi)容塊與緩存的對應(yīng)關(guān)系判斷向哪些緩存發(fā)送查詢消息,內(nèi)容塊與緩存的對應(yīng)關(guān)系所占的存儲空間較之摘要要小很多,因此,本發(fā)明實(shí)施例較之基于摘要協(xié)議的緩存共享方式,降低了內(nèi)存開銷和查找開銷。
文檔編號H04L29/08GK102143212SQ20101062489
公開日2011年8月3日 申請日期2010年12月31日 優(yōu)先權(quán)日2010年12月31日
發(fā)明者歐雄兵 申請人:華為技術(shù)有限公司