本機(jī)中查找不到業(yè)務(wù)請求對應(yīng)的內(nèi)容的情況,則緩存服務(wù)器向源站服務(wù)器發(fā)起請求。
[0071 ] 本發(fā)明實(shí)施例提供的內(nèi)容分發(fā)網(wǎng)絡(luò)中緩存共享方法,第一緩存服務(wù)器接收業(yè)務(wù)請求,獲取業(yè)務(wù)請求所請求的內(nèi)容的第一 URL ;第一緩存服務(wù)器根據(jù)計(jì)算處理規(guī)則對第一 URL進(jìn)行計(jì)算處理,得到第一計(jì)算處理結(jié)果;第一緩存服務(wù)器根據(jù)對應(yīng)規(guī)則確定第一計(jì)算處理結(jié)果對應(yīng)的緩存服務(wù)器標(biāo)識,判斷緩存服務(wù)器標(biāo)識是否與第一緩存服務(wù)器的標(biāo)識一致;若是,則第一緩存服務(wù)器確定由第一緩存服務(wù)器對業(yè)務(wù)請求進(jìn)行處理;若否,則第一緩存服務(wù)器確定由緩存服務(wù)器標(biāo)識對應(yīng)的第二緩存服務(wù)器處理業(yè)務(wù)請求,第一緩存服務(wù)器通過計(jì)算即可確定處理業(yè)務(wù)請求的第二緩存服務(wù)器,不僅實(shí)現(xiàn)了緩存共享,還信令交互簡單,避免訪問延遲,提高了通信效率。
[0072]圖3為本
【發(fā)明內(nèi)容】
分發(fā)網(wǎng)絡(luò)中緩存共享方法實(shí)施例二的流程示意圖。本實(shí)施例的執(zhí)行主體為圖1實(shí)施例中的任一緩存服務(wù)器。本實(shí)施例提供的方法,包括:
[0073]步驟301、第一緩存服務(wù)器接收所述內(nèi)容分發(fā)網(wǎng)絡(luò)的服務(wù)器集群系統(tǒng)中的其它緩存服務(wù)器的組播心跳,根據(jù)所述組播心跳發(fā)現(xiàn)所述內(nèi)容分發(fā)網(wǎng)絡(luò)的服務(wù)器集群系統(tǒng)中的其它緩存服務(wù)器及其它緩存服務(wù)器的標(biāo)識;
[0074]步驟302、所述第一緩存服務(wù)器接收業(yè)務(wù)請求,獲取所述業(yè)務(wù)請求所請求的內(nèi)容的第一 URL ;
[0075]步驟303、所述第一緩存服務(wù)器判斷所述第一 URL是否為熱點(diǎn)URL,若是,執(zhí)行步驟304,若否,執(zhí)行步驟306 ;
[0076]步驟304、所述第一緩存服務(wù)器確定由所述第一緩存服務(wù)器對所述業(yè)務(wù)請求進(jìn)行處理;
[0077]步驟305、所述第一緩存服務(wù)器對所述業(yè)務(wù)請求進(jìn)行處理;
[0078]步驟306、所述第一緩存服務(wù)器確定由所述第一緩存服務(wù)器對所述第一 URL進(jìn)行計(jì)算處理;
[0079]步驟307、所述第一緩存服務(wù)器對所述第一 URL進(jìn)行計(jì)算處理,得到第一計(jì)算處理結(jié)果;
[0080]步驟308、所述第一緩存服務(wù)器根據(jù)所述對應(yīng)規(guī)則確定所述第一計(jì)算處理結(jié)果對應(yīng)的緩存服務(wù)器標(biāo)識,判斷所述緩存服務(wù)器標(biāo)識是否與所述第一緩存服務(wù)器的標(biāo)識一致,若是,執(zhí)行步驟309,若否,執(zhí)行步驟310 ;
[0081]步驟309、所述第一緩存服務(wù)器確定由所述第一緩存服務(wù)器對所述業(yè)務(wù)請求進(jìn)行處理;
[0082]步驟310、所述第一緩存服務(wù)器確定由所述緩存服務(wù)器標(biāo)識對應(yīng)的第二緩存服務(wù)器對所述業(yè)務(wù)請求進(jìn)行處理;
[0083]步驟311、所述第一緩存服務(wù)器判斷與所述第二緩存服務(wù)器連通性測試是否失敗,若是,執(zhí)行步驟312,若否,執(zhí)行步驟313 ;
[0084]步驟312、所述第一緩存服務(wù)器對所述業(yè)務(wù)請求進(jìn)行處理;
[0085]步驟313、所述第一緩存服務(wù)器將所述業(yè)務(wù)請求透傳到所述第二緩存服務(wù)器,由所述第二緩存服務(wù)器對所述業(yè)務(wù)請求進(jìn)行處理。
[0086]本實(shí)施例中的步驟302與圖2實(shí)施例中的步驟201類似,步驟307至步驟310與圖2實(shí)施例中的步驟202至步驟205類似,本實(shí)施例此處不再贅述。
[0087]在步驟301中,第一緩存服務(wù)器接收其它緩存服務(wù)器的組播心跳,根據(jù)組播心跳發(fā)現(xiàn)其它緩存服務(wù)器及其它緩存服務(wù)器的標(biāo)識,并間隔發(fā)送組播心跳,使其它緩存服務(wù)器發(fā)現(xiàn)該第一緩存服務(wù)器的標(biāo)識。
[0088]在本實(shí)施例中,各緩存服務(wù)器通過組播心跳的方式,使本機(jī)被其它緩存服務(wù)器發(fā)現(xiàn),或者本機(jī)發(fā)現(xiàn)其它緩存服務(wù)器,使得CDN服務(wù)器集群系統(tǒng)的配置簡單,易于維護(hù)。
[0089]在步驟303中,第一緩存服務(wù)器判斷該第一 URL是否為熱點(diǎn)URL。在具體實(shí)現(xiàn)過程中,可選地,第一緩存服務(wù)器對對已經(jīng)訪問的URL進(jìn)行統(tǒng)計(jì),得到訪問頻度較高的URL,該訪問頻度較高的URL即為熱點(diǎn)URL,可選地,第一緩存服務(wù)器可使用近期最少使用算法(LeastRecently Used,簡稱LRU)鏈表對已經(jīng)訪問的URL進(jìn)行統(tǒng)計(jì),確定熱點(diǎn)URL。
[0090]在第一緩存服務(wù)器判斷該第一 URL為熱點(diǎn)URL時(shí),該第一緩存服務(wù)器執(zhí)行步驟304,第一緩存服務(wù)器確定由第一緩存服務(wù)器直接對該第一 URL進(jìn)行處理,而不通過內(nèi)網(wǎng)轉(zhuǎn)發(fā)到其他緩存服務(wù)器,然后執(zhí)行步驟305,第一緩存服務(wù)器對業(yè)務(wù)請求進(jìn)行處理。若判斷該第一 URL非熱點(diǎn)URL,則該第一緩存服務(wù)器執(zhí)行步驟306,第一緩存服務(wù)器確定由第一緩存服務(wù)器對第一 URL進(jìn)行計(jì)算處理,然后執(zhí)行步驟307。在現(xiàn)有技術(shù)中,如果某個(gè)URL訪問特別多,而接收該業(yè)務(wù)請求的緩存服務(wù)器又沒有命中,則緩存服務(wù)器會(huì)發(fā)送大量業(yè)務(wù)請求,其它緩存服務(wù)器也會(huì)接收大量的業(yè)務(wù)請求,造成集群內(nèi)機(jī)器負(fù)載的不均衡。本發(fā)明由第一緩存服務(wù)器在判斷第一 URL為熱點(diǎn)URL時(shí),直接對該第一 URL進(jìn)行處理,一方面解決了 URL局部熱點(diǎn)問題,另一個(gè)方面大大減少了內(nèi)網(wǎng)透傳量,降低中央處理器(Central ProcessingUnit,簡稱CPU)消耗。
[0091]可選地,在本實(shí)施例中,如果緩存服務(wù)器出現(xiàn)故障,但組播心跳還存在的情況下,第一緩存服務(wù)器定時(shí)與內(nèi)容分發(fā)網(wǎng)絡(luò)的服務(wù)器集群系統(tǒng)中的其它緩存服務(wù)器進(jìn)行連通性測試,在步驟311中,如果連通性測試失敗,則第一緩存服務(wù)器判斷該緩存服務(wù)器出現(xiàn)故障。在本實(shí)施例中,當(dāng)?shù)谝痪彺娣?wù)器通過連通性測試判斷該第二緩存服務(wù)器出現(xiàn)故障時(shí),則執(zhí)行步驟312,第一緩存服務(wù)器屏蔽向該第二緩存服務(wù)器透傳業(yè)務(wù)請求,待下次連通性測試通過之后,則恢復(fù)向該第二緩存服務(wù)器透傳業(yè)務(wù)請求。第一緩存服務(wù)器對業(yè)務(wù)請求進(jìn)行處理。如果連通性測試成功,則第一緩存服務(wù)器執(zhí)行步驟313,第一緩存服務(wù)器將業(yè)務(wù)請求透傳到第二緩存服務(wù)器,由第二緩存服務(wù)器處理該業(yè)務(wù)請求。本領(lǐng)域技術(shù)人員可以理解,當(dāng)?shù)诙彺娣?wù)器的組播心跳不存在的情況下,第二緩存服務(wù)器會(huì)自動(dòng)退出該集群系統(tǒng),第一緩存服務(wù)器不會(huì)發(fā)現(xiàn)該第二緩存服務(wù)器,也不會(huì)發(fā)現(xiàn)該第二緩存服務(wù)器的標(biāo)識,若計(jì)算處理結(jié)果為該組播心跳不存在的第二緩存服務(wù)器,則第一緩存服務(wù)器處理該業(yè)務(wù)請求。
[0092]在本實(shí)施例中,第一緩存服務(wù)器和第二緩存服務(wù)器處理業(yè)務(wù)請求的過程,具體可參見上述實(shí)施例描述的方式,本實(shí)施例此處不再贅述。
[0093]本發(fā)明實(shí)施例提供的方法,通過連通性測試,在遇到單機(jī)故障時(shí),檢測并自動(dòng)屏蔽,減少單點(diǎn)故障帶來的影響。
[0094]圖4為本發(fā)明緩存服務(wù)器實(shí)施例一的結(jié)構(gòu)示意圖。本發(fā)明實(shí)施例提供的緩存服務(wù)器40可以為第一緩存服務(wù)器,該第一緩存服務(wù)器為圖1實(shí)施例中的任一緩存服務(wù)器。各所述緩存服務(wù)器中存儲(chǔ)有用于對統(tǒng)一資源定位符URL進(jìn)行計(jì)算處理的計(jì)算處理規(guī)則,以及對所述URL進(jìn)行計(jì)算處理得到的計(jì)算處理結(jié)果與緩存服務(wù)器標(biāo)識的對應(yīng)規(guī)則本實(shí)施例提供的緩存服務(wù)器40包括:接收模塊401、處理模塊402以及標(biāo)識判斷模塊403。
[0095]接收模塊401,用于接收業(yè)務(wù)請求,獲取所述業(yè)務(wù)請求所請求的內(nèi)容的第一 URL ;
[0096]處理模塊402,用于根據(jù)所述計(jì)算處理規(guī)則對所述第一 URL進(jìn)行計(jì)算處理,得到第一計(jì)算處理結(jié)果;
[0097]標(biāo)識判斷模塊403,用于根據(jù)所述對應(yīng)規(guī)則確定所述第一計(jì)算處理結(jié)果對應(yīng)的緩存服務(wù)器標(biāo)識,判斷所述緩存服務(wù)器標(biāo)識是否與所述第一緩存服務(wù)器的標(biāo)識一致;
[0098]若是,則確定由所述第一緩存服務(wù)器對所述業(yè)務(wù)請求進(jìn)行處理;
[0099]若否,則確定由所述緩存服務(wù)器的標(biāo)識對應(yīng)的第二緩存服務(wù)器對所述業(yè)務(wù)請求進(jìn)行處理。
[0100]本發(fā)明實(shí)施例提供的緩存服務(wù)器,可執(zhí)行上述方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,本實(shí)施例此處不再贅述。
[0101]圖5為本發(fā)明緩存服務(wù)器實(shí)施例二的結(jié)構(gòu)示意圖。本實(shí)施例在圖4實(shí)施例的基礎(chǔ)上實(shí)現(xiàn),具體如下:
[0102]可選地,所述計(jì)算處理規(guī)則為取余計(jì)算規(guī)則,所述第一計(jì)算處理結(jié)果為取余操作結(jié)果,所述處理模塊402具體用于:根據(jù)所述取余計(jì)算規(guī)則對所述第一 URL進(jìn)行哈希計(jì)算,得到哈希計(jì)算結(jié)果;
[0103]根據(jù)緩存服務(wù)器的總數(shù)對所述哈希計(jì)算結(jié)果進(jìn)行取余操作,得到取余操作結(jié)果。
[0104]可選地,還包括熱點(diǎn)判斷模塊404,
[0105]所述熱點(diǎn)判斷模塊404用于在所述處理模塊對所述第一 URL進(jìn)行計(jì)算處理,根據(jù)計(jì)算處理結(jié)果,確定緩存服務(wù)器的標(biāo)識與所述計(jì)算處理結(jié)果對應(yīng)的第二緩存服務(wù)器處理所述業(yè)務(wù)請求之前,判斷所述第一 URL是否為熱點(diǎn)URL ;
[0106]若否,則所述熱點(diǎn)判斷模塊確定由所述第一緩存服務(wù)器對所述第一 URL進(jìn)行計(jì)算處理;
[0107]若是,則所述熱點(diǎn)判斷模塊確定由所述第一緩存服務(wù)器對所述業(yè)務(wù)請求進(jìn)行處理。
[0108]可選地,所述緩存服務(wù)器還包括:
[0109]連通測試模塊405,用于與所述內(nèi)容分發(fā)網(wǎng)絡(luò)的服務(wù)器集群系統(tǒng)中的其它緩存服務(wù)器進(jìn)行連通性測試;
[0110]連通判斷模塊406,用于在所述第一緩存服務(wù)器確定由所述緩存服務(wù)器的標(biāo)識對應(yīng)的第二緩存服務(wù)器對所述業(yè)務(wù)請求進(jìn)行處理之后,判斷與所述第二緩存服務(wù)器連通性測試是否失??;
[0111]業(yè)務(wù)執(zhí)行模塊407,用于在所述連通判斷模塊判斷結(jié)果為是時(shí),對