本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種資源緩存方法及裝置。
背景技術(shù):
OTT(Over The Top)緩存(Cache)子系統(tǒng)部署在中國(guó)移動(dòng)現(xiàn)有的互聯(lián)網(wǎng)協(xié)議(Internet Protocol,簡(jiǎn)稱為IP)承載網(wǎng)絡(luò)中,用于存儲(chǔ)互聯(lián)網(wǎng)中的熱點(diǎn)內(nèi)容或特定內(nèi)容。在相關(guān)技術(shù)中,在代理模式下,通過(guò)劫持網(wǎng)內(nèi)用戶的訪問(wèn)請(qǐng)求,將請(qǐng)求重定向轉(zhuǎn)發(fā)到OTT Cache系統(tǒng)中,由OTT Cache系統(tǒng)作為代理服務(wù)器為用戶提供所需的互聯(lián)網(wǎng)訪問(wèn)數(shù)據(jù),避免用戶直接從互聯(lián)網(wǎng)源站下載數(shù)據(jù),從而有效規(guī)避網(wǎng)絡(luò)鏈路的擁塞問(wèn)題,降低中國(guó)移動(dòng)用戶訪問(wèn)互聯(lián)網(wǎng)內(nèi)容的時(shí)延,提升用戶的數(shù)據(jù)業(yè)務(wù)體驗(yàn),同時(shí)也可以降低因網(wǎng)間流量所產(chǎn)生的結(jié)算費(fèi)用。
但在實(shí)際應(yīng)用中,并不是所有統(tǒng)一資源定位符(Uniform Resource Locator,簡(jiǎn)稱為url)都適合做302重定向處理,其中,當(dāng)啟用代理模式,即請(qǐng)求路由(Request Routing,簡(jiǎn)稱為RR)對(duì)用戶所有的請(qǐng)求都提供302重定向服務(wù)時(shí),若用戶請(qǐng)求的資源不包含頭域或無(wú)跳轉(zhuǎn)信息等,OTT Cache無(wú)法緩存該資源,此時(shí)不能用作代理服務(wù)器為用戶提供服務(wù)。
當(dāng)啟用代理模式時(shí),若用戶請(qǐng)求的資源OTT Cache可以緩存,但不屬于熱點(diǎn)資源(如某資源只被訪問(wèn)1次或2次)。此時(shí)RR如果做重定向處理,OTT Cache頻繁向源站下拉內(nèi)容,可能會(huì)被源站認(rèn)為是惡意攻擊,導(dǎo)致緩存子系統(tǒng)被限制訪問(wèn)。
當(dāng)不啟用代理模式,即RR對(duì)所有請(qǐng)求都不提供302重定向服務(wù),若用戶請(qǐng)求的資源屬于熱點(diǎn)資源(相同資源被多次訪問(wèn)),用戶不斷向源站請(qǐng)求相同資源,占用大量帶寬,容易造成網(wǎng)絡(luò)擁塞,用戶的體驗(yàn)也會(huì)較差。由此可知,在相關(guān)技術(shù)中可能導(dǎo)致的緩存子系統(tǒng)被限制訪問(wèn)以及網(wǎng)絡(luò)擁塞的問(wèn)題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種資源緩存方法及裝置,以至少解決相關(guān)技術(shù)中存在的緩存子系統(tǒng)被限制訪問(wèn)以及網(wǎng)絡(luò)擁塞的問(wèn)題。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種資源緩存方法,包括:接收第一請(qǐng)求消息,其中,所述第一請(qǐng)求消息用于請(qǐng)求訪問(wèn)第一預(yù)定資源;根據(jù)所述第一請(qǐng)求消息統(tǒng)計(jì)訪問(wèn)所述第一預(yù)定資源的訪問(wèn)次數(shù);判斷所述訪問(wèn)次數(shù)是否達(dá)到第一預(yù)定閾值;在判斷結(jié)果為是的情況下時(shí),通知緩存子系統(tǒng)緩存所述第一預(yù)定資源,其中,所述緩存子系統(tǒng)用于提 供緩存的資源。
可選地,在通知所述緩存子系統(tǒng)緩存所述第一預(yù)定資源之后,還包括:判斷所述緩存子系統(tǒng)是否成功緩存所述第一預(yù)定資源;在判斷結(jié)果為是的情況下,利用所述緩存子系統(tǒng)提供所述第一預(yù)定資源。
可選地,在判斷所述緩存子系統(tǒng)是否成功緩存所述第一預(yù)定資源之后,還包括:在判斷結(jié)果為是的情況下,將緩存的所述第一預(yù)定資源記錄在緩存內(nèi)容分布表中,其中,所述緩存內(nèi)容分布表中記錄有所述緩存子系統(tǒng)已經(jīng)緩存的資源,所述緩存內(nèi)容分布表用于將用于訪問(wèn)所述緩存內(nèi)容分布表中記錄的資源的請(qǐng)求消息重定向到所述緩存子系統(tǒng),利用所述緩存子系統(tǒng)提供所述緩存內(nèi)容分布表中記錄的資源。
可選地,所述方法還包括:接收第二請(qǐng)求消息,其中,所述第二請(qǐng)求消息用于請(qǐng)求訪問(wèn)第二預(yù)定資源;判斷所述緩存子系統(tǒng)中是否緩存有所述第二預(yù)定資源;在判斷結(jié)果為是的情況下,將所述第二請(qǐng)求消息重定向到所述緩存子系統(tǒng),其中,所述第二請(qǐng)求消息用于指示所述緩存子系統(tǒng)提供所述第二預(yù)定資源。
可選地,判斷所述訪問(wèn)次數(shù)是否達(dá)到第一預(yù)定閾值包括:獲取熱度統(tǒng)計(jì)表,其中,所述熱度統(tǒng)計(jì)表用于記錄訪問(wèn)資源的時(shí)間和次數(shù);根據(jù)所述熱度統(tǒng)計(jì)表判斷所述訪問(wèn)次數(shù)是否達(dá)到所述第一預(yù)定閾值。
可選地,所述方法還包括:根據(jù)所述熱度統(tǒng)計(jì)表確定超期資源,其中,所述超期資源為當(dāng)前時(shí)間與訪問(wèn)所述超期資源的最近的時(shí)間的差值超過(guò)第二預(yù)定閾值的資源;刪除所述熱度統(tǒng)計(jì)表中記錄的訪問(wèn)所述超期資源的時(shí)間和次數(shù)。
根據(jù)本發(fā)明的另一方面,提供了一種資源緩存裝置,包括:第一接收模塊,用于接收第一請(qǐng)求消息,其中,所述第一請(qǐng)求消息用于請(qǐng)求訪問(wèn)第一預(yù)定資源;統(tǒng)計(jì)模塊,用于根據(jù)所述第一請(qǐng)求消息統(tǒng)計(jì)訪問(wèn)所述第一預(yù)定資源的訪問(wèn)次數(shù);第一判斷模塊,用于判斷所述訪問(wèn)次數(shù)是否達(dá)到第一預(yù)定閾值;通知模塊,用于在所述第一判斷模塊的判斷結(jié)果為是的情況下時(shí),通知緩存子系統(tǒng)緩存所述第一預(yù)定資源,其中,所述緩存子系統(tǒng)用于提供緩存的資源。
可選地,所述裝置還包括:第二判斷模塊,用于判斷所述緩存子系統(tǒng)是否成功緩存所述第一預(yù)定資源;提供模塊,用于在所述第二判斷模塊的判斷結(jié)果為是的情況下,利用所述緩存子系統(tǒng)提供所述第一預(yù)定資源。
可選地,所述裝置還包括:記錄模塊,用于在所述第二判斷模塊的判斷結(jié)果為是的情況下,將緩存的所述第一預(yù)定資源記錄在緩存內(nèi)容分布表中,其中,所述緩存內(nèi)容分布表中記錄有所述緩存子系統(tǒng)已經(jīng)緩存的資源,所述緩存內(nèi)容分布表用于將用于訪問(wèn)所述緩存內(nèi)容分布表中記錄的資源的請(qǐng)求消息重定向到所述緩存子系統(tǒng),利用所述緩存子系統(tǒng)提供所述緩存內(nèi)容分布表中記錄的資源。
可選地,所述裝置還包括:第二接收模塊,用于接收第二請(qǐng)求消息,其中,所述第二請(qǐng)求消息用于請(qǐng)求訪問(wèn)第二預(yù)定資源;第三判斷模塊,用于判斷所述緩存子系統(tǒng)中是否緩存有所述第二預(yù)定資源;重定向模塊,用于在所述第三判斷模塊的判斷結(jié)果為是的情況下,將所述第二請(qǐng)求消息重定向到所述緩存子系統(tǒng),其中,所述第二請(qǐng)求消息用于指示所述緩存子系統(tǒng)提供所述第二預(yù)定資源。
可選地,所述第一判斷模塊包括:獲取單元,用于獲取熱度統(tǒng)計(jì)表,其中,所述熱度統(tǒng)計(jì)表用于記錄訪問(wèn)資源的時(shí)間和次數(shù);判斷單元,用于根據(jù)所述熱度統(tǒng)計(jì)表判斷所述訪問(wèn)次數(shù)是否達(dá)到所述第一預(yù)定閾值。
可選地,所述裝置還包括:確定模塊,用于根據(jù)所述熱度統(tǒng)計(jì)表確定超期資源,其中,所述超期資源為當(dāng)前時(shí)間與訪問(wèn)所述超期資源的最近的時(shí)間的差值超過(guò)第二預(yù)定閾值的資源;刪除模塊,用于刪除所述熱度統(tǒng)計(jì)表中記錄的訪問(wèn)所述超期資源的時(shí)間和次數(shù)。
通過(guò)本發(fā)明,采用接收第一請(qǐng)求消息,其中,所述第一請(qǐng)求消息用于請(qǐng)求訪問(wèn)第一預(yù)定資源;根據(jù)所述第一請(qǐng)求消息統(tǒng)計(jì)訪問(wèn)所述第一預(yù)定資源的訪問(wèn)次數(shù);判斷所述訪問(wèn)次數(shù)是否達(dá)到第一預(yù)定閾值;在判斷結(jié)果為是的情況下時(shí),通知緩存子系統(tǒng)緩存所述第一預(yù)定資源,其中,所述緩存子系統(tǒng)用于提供緩存的資源。解決了相關(guān)技術(shù)中存在的緩存子系統(tǒng)被限制訪問(wèn)以及網(wǎng)絡(luò)擁塞的問(wèn)題,進(jìn)而達(dá)到了避免緩存子系統(tǒng)被訪問(wèn)限制以及降低網(wǎng)絡(luò)擁塞的效果。
附圖說(shuō)明
此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1是根據(jù)本發(fā)明實(shí)施例的資源緩存方法的流程圖;
圖2是根據(jù)本發(fā)明實(shí)施例的資源緩存裝置的結(jié)構(gòu)框圖;
圖3是根據(jù)本發(fā)明實(shí)施例的資源緩存裝置的優(yōu)選結(jié)構(gòu)框圖一;
圖4是根據(jù)本發(fā)明實(shí)施例的資源緩存裝置的優(yōu)選結(jié)構(gòu)框圖二;
圖5是根據(jù)本發(fā)明實(shí)施例的資源緩存裝置的優(yōu)選結(jié)構(gòu)框圖三;
圖6是根據(jù)本發(fā)明實(shí)施例的資源緩存裝置中第一判斷模塊26的結(jié)構(gòu)框圖;
圖7是根據(jù)本發(fā)明實(shí)施例的資源緩存裝置的優(yōu)選結(jié)構(gòu)框圖四;
圖8是根據(jù)本發(fā)明實(shí)施例的用戶請(qǐng)求調(diào)度與熱度統(tǒng)計(jì)流程圖;
圖9是根據(jù)本發(fā)明實(shí)施例的閾值統(tǒng)計(jì)及內(nèi)容下拉流程圖;
圖10是根據(jù)本發(fā)明實(shí)施例的內(nèi)容緩存結(jié)果上報(bào)流程圖;
圖11是根據(jù)本發(fā)明實(shí)施例的內(nèi)容分發(fā)網(wǎng)絡(luò)系統(tǒng)的簡(jiǎn)易組網(wǎng)圖;
圖12是根據(jù)本發(fā)明實(shí)施例的非代理模式處理機(jī)制圖。
具體實(shí)施方式
下文中將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。
需要說(shuō)明的是,本發(fā)明的說(shuō)明書(shū)和權(quán)利要求書(shū)及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。
在本實(shí)施例中提供了一種資源緩存方法,圖1是根據(jù)本發(fā)明實(shí)施例的資源緩存方法的流程圖,如圖1所示,該流程包括如下步驟:
步驟S102,接收第一請(qǐng)求消息,其中,該第一請(qǐng)求消息用于請(qǐng)求訪問(wèn)第一預(yù)定資源;
步驟S104,根據(jù)上述第一請(qǐng)求消息統(tǒng)計(jì)訪問(wèn)第一預(yù)定資源的訪問(wèn)次數(shù);
步驟S106,判斷上述訪問(wèn)次數(shù)是否達(dá)到第一預(yù)定閾值;
步驟S108,在判斷結(jié)果為是的情況下時(shí),通知緩存子系統(tǒng)緩存上述第一預(yù)定資源,其中,該緩存子系統(tǒng)用于提供緩存的資源。
通過(guò)上述步驟,在通知緩存子系統(tǒng)緩存資源時(shí),僅通知緩存子系統(tǒng)緩存訪問(wèn)次數(shù)超過(guò)了第一預(yù)定閾值的資源,從而實(shí)現(xiàn)了有選擇的緩存資源的目的,即,針對(duì)訪問(wèn)次數(shù)達(dá)到第一預(yù)定閾值(即,該資源足夠熱門(mén),訪問(wèn)的用戶比較多)的資源進(jìn)行緩存,從而避免了緩存子系統(tǒng)被限制訪問(wèn)的問(wèn)題,當(dāng)用戶再次訪問(wèn)該資源時(shí),可以直接由緩存子系統(tǒng)提供該資源,從而減輕網(wǎng)絡(luò)擁塞。解決了相關(guān)技術(shù)中存在的緩存子系統(tǒng)被限制訪問(wèn)以及網(wǎng)絡(luò)擁塞的問(wèn)題,進(jìn)而達(dá)到了避免緩存子系統(tǒng)被訪問(wèn)限制以及降低網(wǎng)絡(luò)擁塞的效果。
在一個(gè)可選的實(shí)施例中,在通知上述緩存子系統(tǒng)緩存上述第一預(yù)定資源之后,還包括:判斷該緩存子系統(tǒng)是否成功緩存上述第一預(yù)定資源;在判斷結(jié)果為是的情況下,利用該緩存子系統(tǒng)提供上述第一預(yù)定資源。并且,通過(guò)緩存子系統(tǒng)是否成功緩存資源(如,上述的第一預(yù)定資源)可以確定該緩存子系統(tǒng)是否支持緩存上述資源。
在一個(gè)可選的實(shí)施例中,在判斷上述緩存子系統(tǒng)是否成功緩存第一預(yù)定資源之后,還包括:在判斷結(jié)果為是的情況下,將緩存的上述第一預(yù)定資源記錄在緩存內(nèi)容分布表中,其中,該緩存內(nèi)容分布表中記錄有上述緩存子系統(tǒng)已經(jīng)緩存的資源,該緩存內(nèi)容分布表用于將用于訪問(wèn)上述緩存內(nèi)容分布表中記錄的資源的請(qǐng)求消息重定向到緩存子系統(tǒng),利用該緩存子系統(tǒng)提供緩存內(nèi)容分布表中記錄的資源。也就是說(shuō),上述的緩存內(nèi)容 分布表中記錄的資源都是該緩存子系統(tǒng)成功緩存的資源,從而當(dāng)用戶需要訪問(wèn)該緩存內(nèi)容分布表中記錄的資源時(shí),可以直接利用該緩存子系統(tǒng)提供資源,從而有效的減輕網(wǎng)絡(luò)的壓力,降低網(wǎng)絡(luò)擁塞。本實(shí)施例中的請(qǐng)求消息可以為第一請(qǐng)求消息、第二請(qǐng)求消息,或者其他請(qǐng)求消息。
在一個(gè)可選的實(shí)施例中,在步驟S102中接收第一請(qǐng)求消息時(shí),同時(shí)可以接收第二請(qǐng)求消息,其中,該第二請(qǐng)求消息用于請(qǐng)求訪問(wèn)第二預(yù)定資源;判斷緩存子系統(tǒng)中是否緩存有第二預(yù)定資源;在判斷結(jié)果為是的情況下,將第二請(qǐng)求消息重定向到緩存子系統(tǒng),其中,第二請(qǐng)求消息用于指示緩存子系統(tǒng)提供第二預(yù)定資源。從而當(dāng)緩存子系統(tǒng)中已經(jīng)緩存有該第二預(yù)定資源的時(shí)候,可以直接將第二請(qǐng)求消息重定向到緩存子系統(tǒng)中,從而提高了獲得第二預(yù)定資源的效率。在該可選實(shí)施例中,第一預(yù)定資源和第二預(yù)定資源可以為相同的資源,也可以為不同的資源。并且,第二請(qǐng)求消息的接收時(shí)機(jī)可以發(fā)生在任何時(shí)刻,比如可以在步驟S104之前或之后,或者在步驟S108之前或者之后。
在一個(gè)可選的實(shí)施例中,判斷上述訪問(wèn)次數(shù)是否達(dá)到第一預(yù)定閾值包括:獲取熱度統(tǒng)計(jì)表,其中,該熱度統(tǒng)計(jì)表用于記錄訪問(wèn)資源的時(shí)間和次數(shù);根據(jù)該熱度統(tǒng)計(jì)表判斷訪問(wèn)次數(shù)是否達(dá)到上述第一預(yù)定閾值。其中,該熱度統(tǒng)計(jì)表就是用于記錄用戶曾經(jīng)訪問(wèn)過(guò)的資源的訪問(wèn)次數(shù)和訪問(wèn)時(shí)間的,且每訪問(wèn)一次某個(gè)資源,對(duì)應(yīng)該資源的訪問(wèn)次數(shù)會(huì)相應(yīng)加1,同時(shí)記錄的還有對(duì)應(yīng)于該次訪問(wèn)的訪問(wèn)時(shí)間,從而清楚的確定資源的訪問(wèn)情況。
在一個(gè)可選的實(shí)施例中,還可以根據(jù)上述熱度統(tǒng)計(jì)表確定超期資源,其中,該超期資源為當(dāng)前時(shí)間與訪問(wèn)超期資源的最近的時(shí)間的差值超過(guò)第二預(yù)定閾值的資源;刪除該熱度統(tǒng)計(jì)表中記錄的訪問(wèn)上述超期資源的時(shí)間和次數(shù)。其中,該第二預(yù)定閾值可以設(shè)置為10天,或者5天,或者其他的值,上述的超期資源即訪問(wèn)熱度降低的資源,當(dāng)某個(gè)資源未被訪問(wèn)的時(shí)間超過(guò)了上述第二預(yù)定閾值時(shí),即可確定該資源的訪問(wèn)熱度已足夠低,將超期資源的記錄在熱度統(tǒng)計(jì)表中刪除,從而保證該熱度統(tǒng)計(jì)表能夠統(tǒng)計(jì)更多的資源的訪問(wèn)時(shí)間及次數(shù)。
通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實(shí)施例的方法可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如ROM/RAM、磁碟、光盤(pán))中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
在本實(shí)施例中還提供了一種資源緩存裝置,該裝置用于實(shí)現(xiàn)上述實(shí)施例及優(yōu)選實(shí)施方式,已經(jīng)進(jìn)行過(guò)說(shuō)明的不再贅述。如以下所使用的,術(shù)語(yǔ)“模塊”可以實(shí)現(xiàn)預(yù)定功能的軟件或者軟件和硬件的組合。盡管以下實(shí)施例所描述的裝置較佳地以軟件來(lái)實(shí)現(xiàn),但是軟件和硬件的組合的實(shí)現(xiàn)也是可能并被構(gòu)想的。
圖2是根據(jù)本發(fā)明實(shí)施例的資源緩存裝置的結(jié)構(gòu)框圖,如圖2所示,該裝置包括第一接收模塊22、統(tǒng)計(jì)模塊24、第一判斷模塊26和通知模塊28,下面對(duì)該裝置進(jìn)行說(shuō)明。
第一接收模塊22,用于接收第一請(qǐng)求消息,其中,該第一請(qǐng)求消息用于請(qǐng)求訪問(wèn)第一預(yù)定資源;統(tǒng)計(jì)模塊24,連接至上述第一接收模塊22,用于根據(jù)上述第一請(qǐng)求消息統(tǒng)計(jì)訪問(wèn)該第一預(yù)定資源的訪問(wèn)次數(shù);第一判斷模塊26,連接至上述統(tǒng)計(jì)模塊24,用于判斷上述訪問(wèn)次數(shù)是否達(dá)到第一預(yù)定閾值;通知模塊28,連接至上述第一判斷模塊26,用于在上述第一判斷模塊26的判斷結(jié)果為是的情況下時(shí),通知緩存子系統(tǒng)緩存上述第一預(yù)定資源,其中,該緩存子系統(tǒng)用于提供緩存的資源。
圖3是根據(jù)本發(fā)明實(shí)施例的資源緩存裝置的優(yōu)選結(jié)構(gòu)框圖一,如圖3所示,該裝置除包括圖2所示的所有模塊外,還包括第二判斷模塊32和提供模塊34,下面對(duì)該裝置進(jìn)行說(shuō)明。
第二判斷模塊32,連接至上述通知模塊28,用于判斷上述緩存子系統(tǒng)是否成功緩存上述第一預(yù)定資源;提供模塊34,連接至上述第二判斷模塊32,用于在上述第二判斷模塊32的判斷結(jié)果為是的情況下,利用上述緩存子系統(tǒng)提供上述第一預(yù)定資源。
圖4是根據(jù)本發(fā)明實(shí)施例的資源緩存裝置的優(yōu)選結(jié)構(gòu)框圖二,如圖4所示,該裝置除包括圖3所示的所有模塊外,還包括記錄模塊42,下面對(duì)該裝置進(jìn)行說(shuō)明。
記錄模塊42,連接至上述第二判斷模塊32,用于在上述第二判斷模塊32的判斷結(jié)果為是的情況下,將緩存的上述第一預(yù)定資源記錄在緩存內(nèi)容分布表中,其中,該緩存內(nèi)容分布表中記錄有緩存子系統(tǒng)已經(jīng)緩存的資源,該緩存內(nèi)容分布表用于將用于訪問(wèn)上述緩存內(nèi)容分布表中記錄的資源的請(qǐng)求消息重定向到緩存子系統(tǒng),利用該緩存子系統(tǒng)提供緩存內(nèi)容分布表中記錄的資源。
圖5是根據(jù)本發(fā)明實(shí)施例的資源緩存裝置的優(yōu)選結(jié)構(gòu)框圖三,如圖5所示,該裝置除了包括圖2所示的所有模塊外,還包括第二接收模塊52、第三判斷模塊54和重定向模塊,第二接收模塊52可以連接于第一接收模塊22、統(tǒng)計(jì)模塊24、第一判斷模塊26或者通知模塊28,下面以第二接收模塊52連接于第一接收模塊22為例,對(duì)該裝置進(jìn)行說(shuō)明。
第二接收模塊52,連接于第一接收模塊22,用于接收第二請(qǐng)求消息,其中,第二請(qǐng)求消息用于請(qǐng)求訪問(wèn)第二預(yù)定資源;第三判斷模,塊54,連接于第二接收模塊52,用于判斷緩存子系統(tǒng)中是否緩存有第二預(yù)定資源;重定向模塊56,連接于第三判斷模塊54,用于在第三判斷模塊54的判斷結(jié)果為是的情況下,將第二請(qǐng)求消息重定向到緩存子系統(tǒng),其中,第二請(qǐng)求消息用于指示緩存子系統(tǒng)提供第二預(yù)定資源。
圖6是根據(jù)本發(fā)明實(shí)施例的資源緩存裝置中第一判斷模塊26的結(jié)構(gòu)框圖,如圖6所示,該第一判斷模塊26包括獲取單元62和判斷單元64,下面對(duì)該第一判斷模塊26 進(jìn)行說(shuō)明。
獲取單元62,用于獲取熱度統(tǒng)計(jì)表,其中,該熱度統(tǒng)計(jì)表用于記錄訪問(wèn)資源的時(shí)間和次數(shù);判斷單元64,連接至上述獲取單元52,用于根據(jù)上述熱度統(tǒng)計(jì)表判斷訪問(wèn)次數(shù)是否達(dá)到上述第一預(yù)定閾值。
圖7是根據(jù)本發(fā)明實(shí)施例的資源緩存裝置的優(yōu)選結(jié)構(gòu)框圖四,如圖7所示,該裝置除包括圖6所示的所有模塊外,還包括確定模塊72和刪除模塊74,下面對(duì)該裝置進(jìn)行說(shuō)明。
確定模塊72,連接至上述第一判斷模塊26,用于根據(jù)上述熱度統(tǒng)計(jì)表確定超期資源,其中,該超期資源為當(dāng)前時(shí)間與訪問(wèn)上述超期資源的最近的時(shí)間的差值超過(guò)第二預(yù)定閾值的資源;刪除模塊74,連接至上述確定模塊72,用于刪除上述熱度統(tǒng)計(jì)表中記錄的訪問(wèn)該超期資源的時(shí)間和次數(shù)。其中,上述的確定模塊72和圖6中所示的各模塊的連接關(guān)系可以有多種,圖7中所示的僅是一種示例,例如,該確定模塊72還可以連接于上述的通知模塊28之后。
其中,上述的各個(gè)方法的執(zhí)行的主體可以是RR,上述的各個(gè)裝置可以應(yīng)用于RR中。
下面結(jié)合RR對(duì)本發(fā)明實(shí)施例進(jìn)行說(shuō)明:
為解決相關(guān)技術(shù)中存在的上述問(wèn)題,本發(fā)明實(shí)施例中提供了一種非代理模式的超文本傳輸協(xié)議(HyperText Transfer Protocol,簡(jiǎn)稱為HTTP)請(qǐng)求調(diào)度方法,根據(jù)緩存子系統(tǒng)能否對(duì)請(qǐng)求的資源提供緩存服務(wù),判斷是否對(duì)HTTP請(qǐng)求做302重定向處理,以及緩存子系統(tǒng)何時(shí)進(jìn)行內(nèi)容緩存。該方法包括:
1、對(duì)于緩存子系統(tǒng)無(wú)法緩存的內(nèi)容,RR不做302重定向處理,由源站直接為用戶提供服務(wù),避免緩存子系統(tǒng)無(wú)法提供服務(wù)造成用戶體驗(yàn)差的問(wèn)題。
2、對(duì)于緩存子系統(tǒng)可以緩存的內(nèi)容,當(dāng)用戶請(qǐng)求的內(nèi)容不屬于熱點(diǎn)資源,RR不對(duì)該請(qǐng)求進(jìn)行重定向,而只做熱度統(tǒng)計(jì),直接由源站為用戶提供服務(wù),避免緩存子系統(tǒng)頻繁訪問(wèn)源站可能導(dǎo)致被限制訪問(wèn)。
3、當(dāng)用戶請(qǐng)求的內(nèi)容屬于熱點(diǎn)資源,且訪問(wèn)次數(shù)達(dá)到訪問(wèn)熱度閾值時(shí),RR通知OTT Cache下拉內(nèi)容,后續(xù)再有用戶請(qǐng)求相同資源時(shí),RR將請(qǐng)求重定向轉(zhuǎn)發(fā)到OTTCache,由緩存子系統(tǒng)直接提供服務(wù),避免用戶對(duì)源站直接大量訪問(wèn)造成網(wǎng)絡(luò)擁塞,達(dá)到節(jié)省帶寬、提高用戶體驗(yàn)的效果,同時(shí)也提高了OTT Cache的緩存命中率。
本發(fā)明實(shí)施例中的方案的實(shí)現(xiàn)可以依賴于兩張表的設(shè)計(jì):url熱度統(tǒng)計(jì)表(同上述的熱度統(tǒng)計(jì)表)和緩存內(nèi)容分布表。url熱度統(tǒng)計(jì)表用于統(tǒng)計(jì)url訪問(wèn)熱度,緩存內(nèi)容分布表用于記錄緩存子系統(tǒng)可以為用戶提供服務(wù)的資源。
圖8是根據(jù)本發(fā)明實(shí)施例的用戶請(qǐng)求調(diào)度與熱度統(tǒng)計(jì)流程圖,如圖8所示,該流程包括如下步驟:
步驟S802,用戶發(fā)起HTTP請(qǐng)求;
步驟S804,根據(jù)黑白名單、IP段等規(guī)則,判斷該url(即,上述的HTTP請(qǐng)求)是否需要被劫持,在判斷結(jié)果為需要時(shí),轉(zhuǎn)至步驟S806,否則,轉(zhuǎn)至步驟S810;
步驟S806,當(dāng)確定用戶的HTTP請(qǐng)求需要被RR劫持時(shí),RR根據(jù)用戶訪問(wèn)url,在熱度統(tǒng)計(jì)表中記錄本次請(qǐng)求(步驟S812-S814),同時(shí)判斷該內(nèi)容在緩存內(nèi)容分布表中是否存在,如果存在,轉(zhuǎn)至步驟S808,否則,轉(zhuǎn)至步驟S810;
步驟S808,響應(yīng)用戶請(qǐng)求,重定向到OTT Cache,利用該緩存子系統(tǒng)提供服務(wù);
步驟S810,忽略本次請(qǐng)求,讓用戶直接從源站請(qǐng)求下載上述資源;
步驟S812,判斷熱度統(tǒng)計(jì)表中是否有該url的訪問(wèn)記錄,在判斷結(jié)果為不存在的情況下,轉(zhuǎn)至步驟S814,否則,轉(zhuǎn)至步驟S816;
步驟S814,熱度統(tǒng)計(jì)表新增記錄,訪問(wèn)次數(shù)記為1,并記錄請(qǐng)求時(shí)間;記錄的統(tǒng)計(jì)項(xiàng)包括:a.key:用戶請(qǐng)求的完整url使用md5算法計(jì)算得出的32位加密串為key。
b.服務(wù)節(jié)點(diǎn)id:用戶本次調(diào)度到的服務(wù)節(jié)點(diǎn)的id號(hào)。
c.訪問(wèn)次數(shù):每有一次用戶訪問(wèn),計(jì)數(shù)加1。
d.最后一次訪問(wèn)時(shí)間:記錄最后一次用戶訪問(wèn)的時(shí)間,單位毫秒。
e.熱點(diǎn)閾值(同上述的第一預(yù)定閾值):閾值的獲取,需要根據(jù)用戶訪問(wèn)的url從HTTP域名黑白名單列表中匹配到相應(yīng)的域名記錄,從記錄的條目中獲取該url的熱點(diǎn)閾值大小。針對(duì)不同的網(wǎng)站,系統(tǒng)設(shè)置不同的閾值,通過(guò)HTTP域名黑白名單接口下發(fā)到RR上。當(dāng)訪問(wèn)次數(shù)達(dá)到此閾值時(shí),RR通知OTT Cache進(jìn)行緩存。OTT Cache將內(nèi)容下拉完成后,通知RR進(jìn)行內(nèi)容更新,RR收到通知后更新內(nèi)存數(shù)據(jù),并保存到內(nèi)容分布表中,熱點(diǎn)閾值統(tǒng)計(jì)和內(nèi)容下拉流程如附圖9所示,內(nèi)容上報(bào)流程如附圖10所示。
步驟S816,如果熱度表中有該url對(duì)應(yīng)key的記錄,將此條記錄的訪問(wèn)次數(shù)加1,最后一次訪問(wèn)時(shí)間更改為當(dāng)前時(shí)間。
其中,可以根據(jù)用戶請(qǐng)求的url,計(jì)算一個(gè)md5值,作為記錄key。通過(guò)內(nèi)容分布表,查詢?cè)搆ey對(duì)應(yīng)內(nèi)容在此節(jié)點(diǎn)上是否已經(jīng)被緩存。如果內(nèi)容存在,響應(yīng)用戶請(qǐng)求,將用戶請(qǐng)求重定向到緩存子系統(tǒng)。如果不存在,則忽略用戶請(qǐng)求,讓用戶直接回源。
圖9是根據(jù)本發(fā)明實(shí)施例的閾值統(tǒng)計(jì)及內(nèi)容下拉流程圖,如圖9所示,該流程包括如下步驟:
步驟S902,RR后臺(tái)進(jìn)程,定時(shí)掃描熱度統(tǒng)計(jì)表,依次處理每條記錄;
步驟S904,取出下一條記錄;
步驟S906,判斷該記錄是否已經(jīng)超期(當(dāng)前時(shí)間減去url最后一次訪問(wèn)時(shí)間是否大于或等于超期時(shí)間),在判斷結(jié)果為是的情況下,確定url超期,轉(zhuǎn)至步驟S908,否則,轉(zhuǎn)至步驟S910;
步驟S908,刪除該url相關(guān)記錄;
步驟S910,判斷訪問(wèn)次數(shù)是否大于或等于熱點(diǎn)閾值,在判斷結(jié)果為是的情況下,轉(zhuǎn)至步驟S912,否則,轉(zhuǎn)至步驟S916;
步驟S912,根據(jù)url的key值以及節(jié)點(diǎn)id等信息判斷緩存內(nèi)容表中是否有該url記錄,在判斷結(jié)果為是的情況下,轉(zhuǎn)至步驟S916,否則,轉(zhuǎn)至步驟S914;
步驟S914,通知OTT Cache下載該url對(duì)應(yīng)的內(nèi)容;
步驟S916,則表明該內(nèi)容已緩存,不需要通知OTT Cache,本條熱度記錄處理完畢;
步驟S918,判斷是否還有未處理的記錄,在判斷結(jié)果為是的情況下,轉(zhuǎn)至步驟S904,否則,轉(zhuǎn)至步驟S920;
步驟S920,等待用戶的訪問(wèn)請(qǐng)求。
從上述的流程中可以看出,RR可以找出達(dá)到熱點(diǎn)閾值的記錄,通知緩存子系統(tǒng)進(jìn)行內(nèi)容緩存,同時(shí)清理長(zhǎng)期未被再次訪問(wèn)的url記錄。RR需要支持對(duì)不同的網(wǎng)站或者文件后綴名設(shè)定不同的閾值,如針對(duì)www.sohu.com或sina.com,可以分別設(shè)置不同的緩存閾值策略。當(dāng)RR收到一個(gè)用戶的HTTP下載請(qǐng)求,根據(jù)匹配規(guī)則,在表內(nèi)找到對(duì)應(yīng)的匹配規(guī)則記錄,進(jìn)而找到針對(duì)本次請(qǐng)求url的一個(gè)熱度閾值,保存到內(nèi)容熱度統(tǒng)計(jì)表中。當(dāng)用戶請(qǐng)求同一資源的次數(shù)達(dá)到網(wǎng)站緩存熱度閾值時(shí),緩存子系統(tǒng)向源站發(fā)出請(qǐng)求下拉內(nèi)容。內(nèi)容被成功緩存后,在其有效期內(nèi),若有用戶再次請(qǐng)求相同資源,RR通過(guò)查詢緩存內(nèi)容分布表判斷出緩存子系統(tǒng)可以提供服務(wù),將轉(zhuǎn)發(fā)該請(qǐng)求到緩存子系統(tǒng),由緩存子系統(tǒng)直接為該用戶提供內(nèi)容服務(wù)。
圖10是根據(jù)本發(fā)明實(shí)施例的內(nèi)容緩存結(jié)果上報(bào)流程圖,如圖10所示,該流程包括如下步驟:
步驟S1002,RR主程序在啟動(dòng)時(shí),首先從數(shù)據(jù)庫(kù)(磁盤(pán))中加載內(nèi)容分布表,將內(nèi)容分布數(shù)據(jù)保存在內(nèi)存緩存中,供調(diào)度進(jìn)程使用。(對(duì)應(yīng)于圖10中的步驟S1-S3)
步驟S1004,當(dāng)緩存子系統(tǒng)有內(nèi)容更新時(shí),通知RR進(jìn)行內(nèi)容更新。(對(duì)應(yīng)于圖10中的步驟S4)
步驟S1006,RR更新內(nèi)存緩存中的相關(guān)記錄,新增/刪除。(對(duì)應(yīng)于圖10中的步驟 S5)
步驟S1008,RR將記錄持久化到磁盤(pán)中。(對(duì)應(yīng)于圖10中的步驟S6)
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。
圖11是根據(jù)本發(fā)明實(shí)施例的內(nèi)容分發(fā)網(wǎng)絡(luò)(Content Delivery Network,簡(jiǎn)稱為CDN)系統(tǒng)的簡(jiǎn)易組網(wǎng)圖,整個(gè)系統(tǒng)主要包括調(diào)度子系統(tǒng)和緩存子系統(tǒng)。RR調(diào)度子系統(tǒng)對(duì)用戶的HTTP請(qǐng)求進(jìn)行劫持和重定向處理,緩存子系統(tǒng)由SLB7和OTT Cache共同組成,當(dāng)RR將用戶的HTTP請(qǐng)求重定向到緩存子系統(tǒng)后,緩存子系統(tǒng)為用戶提供服務(wù)。
圖12是根據(jù)本發(fā)明實(shí)施例的非代理模式處理機(jī)制圖,該圖12描述了RR在劫持到用戶的HTTP下載請(qǐng)求后,緩存子系統(tǒng)未命中、達(dá)到熱度閾值進(jìn)行內(nèi)容下拉(對(duì)應(yīng)于圖12中的達(dá)到閾值代理下載)以及緩存命中的處理流程。如圖12所示,該流程包括如下步驟:
緩存子系統(tǒng)未命中的處理流程包括:
步驟S1202,用戶發(fā)送HTTP文件下載請(qǐng)求;
步驟S1204,RR對(duì)上述下載請(qǐng)求進(jìn)行劫持;
步驟S1206,確定緩存子系統(tǒng)中未緩存上述文件(對(duì)應(yīng)于上述的資源),忽略此次用戶的HTTP文件下載請(qǐng)求;
步驟S1208,源站為用戶提供文件下載服務(wù)。
達(dá)到熱度閾值進(jìn)行內(nèi)容下拉流程包括:
步驟S1210,熱度統(tǒng)計(jì)表中的訪問(wèn)次數(shù)+1;
步驟S1212,達(dá)到上述熱點(diǎn)閾值,通知OTT Cache下載;
步驟S1214,OTT Cache下載文件成功。
緩存命中的處理流程包括:
步驟S1216,用戶發(fā)送HTTP文件下載請(qǐng)求;
步驟S1218,RR對(duì)上述下載請(qǐng)求進(jìn)行劫持;
步驟S1220,確定緩存子系統(tǒng)中已經(jīng)緩存了上述文件,通知用戶重定向至緩存子系統(tǒng);
步驟S1222,將用戶的HTTP文件下載請(qǐng)求重定向至OTT Cache;
步驟S1224,OTT Cache為用戶提供文件下載服務(wù)。
本發(fā)明實(shí)施例中實(shí)現(xiàn)了一種非代理模式的HTTP請(qǐng)求調(diào)度方法,調(diào)度子系統(tǒng)通過(guò)熱度統(tǒng)計(jì)表的維護(hù)判斷緩存子系統(tǒng)何時(shí)下拉內(nèi)容,通過(guò)緩存內(nèi)容分布表記錄內(nèi)容緩存情況以及判斷緩存子系統(tǒng)能否為用戶提供服務(wù)。調(diào)度子系統(tǒng)根據(jù)緩存子系統(tǒng)能否對(duì)請(qǐng)求的資源提供緩存服務(wù),判斷是否對(duì)HTTP請(qǐng)求做302重定向處理。
需要說(shuō)明的是,上述各個(gè)模塊是可以通過(guò)軟件或軟件與硬件的結(jié)合來(lái)實(shí)現(xiàn)的,對(duì)于后者,可以通過(guò)以下方式實(shí)現(xiàn),但不限于此:上述模塊均位于同一處理器中;或者,上述模塊分別位于多個(gè)處理器中。
本發(fā)明的實(shí)施例還提供了一種存儲(chǔ)介質(zhì)??蛇x地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:
S11,接收第一請(qǐng)求消息,其中,該第一請(qǐng)求消息用于請(qǐng)求訪問(wèn)第一預(yù)定資源;
S12,根據(jù)上述第一請(qǐng)求消息統(tǒng)計(jì)訪問(wèn)第一預(yù)定資源的訪問(wèn)次數(shù);
S13,判斷上述訪問(wèn)次數(shù)是否達(dá)到第一預(yù)定閾值;
S14,在判斷結(jié)果為是的情況下時(shí),通知緩存子系統(tǒng)緩存上述第一預(yù)定資源,其中,該緩存子系統(tǒng)用于提供緩存的資源
可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以包括但不限于:U盤(pán)、只讀存儲(chǔ)器(Read-Only Memory,簡(jiǎn)稱為ROM)、隨機(jī)存取存儲(chǔ)器(Random Access Memory,簡(jiǎn)稱為RAM)、移動(dòng)硬盤(pán)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
可選地,在本實(shí)施例中,處理器根據(jù)存儲(chǔ)介質(zhì)中已存儲(chǔ)的程序代碼執(zhí)行上述步驟S11-S14。
可選地,本實(shí)施例中的具體示例可以參考上述實(shí)施例及可選實(shí)施方式中所描述的示例,本實(shí)施例在此不再贅述。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來(lái)執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。