專利名稱:資源緩存方法、資源獲取方法及其裝置、系統的制作方法
技術領域:
本發明實施例涉及存儲技術領域,尤其涉及一種資源緩存方法、資源獲 取方法及其裝置、系統。 -
背景技術:
目前,資源緩存技術中,為了降低出口帶寬的壓力,資源緩存系統中 的調度服務器會根據資源的訪問熱度判斷該資源的訪問次數是否到達預 設的閾值,在資源的訪問熱度到達熱度閾值后,調度服務器根據調度算法 調度某一臺緩存服務器下載需要緩存的資源。下載完成后,緩存服務器通 知調度服務器的數據庫該資源已被緩存在某一臺緩存服務器上,在實際應 用中,系統中只有一個緩存服務器可以提供緩存。
如果有用戶需要下載該資源,則系統會查詢該資源是否已經被系統緩
存,如果已經緩存,進一步查詢緩存該資源的緩存服務器A的相關信息, 使得用戶可以從緩存服務器A中下載該資源。
在實現本發明過程中,發明人發現現有技術中至少存在如下問題 目前的資源緩存系統中,不支持多個節點負載分流以及多機熱點備份 機制,如圖l所示,資源A、資源B緩存于緩存服務器1中,資源F、資 源X緩存在緩存服務器2中,資源N、資源P、資源O緩存在緩存服務器 n中,用戶如果想下載資源F,只能從一臺緩存有該資源的緩存服務器2 中下載,導致相對空閑的緩存服務器無法為繁忙的緩存服務器分擔負載。 此外,如果含有熱點該資源的服務器出現故障,則大量用戶只能通過外網 下載該資源通過外網,造成出口帶寬壓力突增。
發明內容
本發明實施例提供一種資源緩存方法、資源獲取方法及其裝置、系統, 能夠減少系統中繁忙的緩存服務器的負載,減輕出口帶寬的壓力。
本發明實施例提供一種資源緩存方法,包括
每隔第 一預定時間從數據庫獲取資源的訪問熱度值,并在判斷訪問熱度 值達到預先設置的第一閾值的情況下,從數據庫獲取緩存服務器的負載值; 根據訪問熱度值以及負載值確定復制資源的復制緩存服務器,并通知復制緩 存服務器從保存有資源的緩存服務器中復制資源并緩存。
本發明實施例提供一種資源獲取方法,包括
接收資源查詢請求,根據資源查詢請求向數據庫查詢并確定用戶請求下 載的資源已緩存;接收數據庫發送的緩存有資源的所有緩存服務器的信息以 及緩存有資源的所有緩存服務器的負載值;根據緩存有資源的所有緩存服務 器的信息以及緩存有資源的所有緩存服務器的負載值選擇目標下載緩存服務 器,通知用戶從目標下載緩存服務器中下載資源。
本發明實施例提供一種資源緩存裝置,包括
獲取模塊,用于每隔第一預定時間從數據庫獲取資源的訪問熱度值,并 在判斷訪問熱度值達到預先設置的第一閾值的情況下,從數據庫獲取緩存服 務器的負載值;第一確定模塊,用于根據訪問熱度值以及負載值確定復制資 源的復制緩存服務器;第一通知模塊,用于通知復制緩存服務器從保存有資 源的緩存服務器中復制資源并緩存。
本發明實施例提供一種資源獲取裝置,包括
第二接收模塊,用于接收資源查詢請求;第三確定模塊,用于根據資源 查詢請求向數據庫查詢并確定用戶請求下載的資源已緩存;第三接收模塊, 用于接收數據庫發送的緩存有資源的所有緩存服務器的信息以及緩存有資源 的所有緩存服務器的負載值;第四確定模塊,用于根據緩存有資源的所有緩存服務器的信息以及緩存有資源的所有緩存服務器的負載值選擇目標下載緩 存服務器;第三通知模塊,用于通知用戶從目標下載緩存服務器中下載資源。
本發明實施例還提供一種資源緩存系統,包括
數據庫,用于存儲資源的訪問熱度值以及緩存服務器的負載值;調度服
務器,用于每隔第一預定時間從數據庫獲取資源的訪問熱度值,并在判斷訪 問熱度值達到預先設置的第一閾值的情況下,從數據庫獲取緩存服務器的負 載值,根據訪問熱度值以及負載值確定復制資源的復制緩存服務器,并通知
復制緩存服務器從保存有資源的緩存服務器中復制資源;緩存服務器,用于 在調度服務器的控制下從保存有資源的緩存服務器中復制資源并緩存。
本發明實施例的源緩存方法、資源獲取方法及其裝置、系統,通過將熱 點資源復制到多個空閑服務器中,克服了現有技術中同 一資源只能在一 臺緩 存服務器中緩存而導致的相對空閑的緩存服務器無法為繁忙的緩存服務器分 擔負載的缺陷,實現了多個緩存服務器共同提供資源下載服務,能夠減少系 統中繁忙的緩存服務器的負載,減輕出口帶寬的壓力。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實 施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下 面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在 不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖l是現有技術中資源緩存系統的架構示意圖2是本發明實施例的資源緩存方法的流程圖3是本發明實施例的用戶請求下載未緩存資源的信令流程圖4是本發明實施例的熱點資源空間回收的信令流程圖5是本發明實施例的資源獲取方法的流程圖;圖6是本發明實施例的用戶請求下載已緩存資源的信令流程圖7是本發明實施例的資源緩存裝置的示意圖8是本發明實施例的資源獲取裝置的示意圖9是本發明實施例的資源緩存系統的示意圖IO是本發明實施例的P2P緩存系統的結構示意圖11是本發明實施例的對資源分類存儲的系統結構示意圖。
具體實施例方式
下面結合附圖和具體實施例進一步說明本發明實施例的技術方案。
目前,電信級資源緩存系統中包括數十臺緩存服務器,每個緩存服務 器承載不同的資源,為數萬在線用戶提供服務,每臺緩存服務器一般最多 能夠負載1000至2000用戶訪問。并且,某一資源只存在于一臺緩存服務 器上,沒有熱點內容處理機制,不會有多個備份資源存儲于其他緩存服務 器中。如圖l所示,資源A、資源B緩存于緩存服務器1中,資源F、資 源X緩存在緩存服務器2中,資源N、資源P、資源O緩存在緩存服務器 n中,用戶如果想下載資源F,只能從緩存服務器2中下載。
此外,其他服務器上由于沒有備份資源,就不能為用戶提供緩存,導 致資源緩存系統的性能受一臺服務器性能的限制,無法進行性能擴展。由 于有的服務器負載過重,有的服務器負載很低,從而導致負載低的服務器 利用率低,業務相對空閑的服務器無法為繁忙服務器分擔負載。
為了解決上述問題,根據本發明的實施例,提供了一種資源緩存方法, 圖2是本發明實施例的資源緩存方法的流程圖,如圖2所示,根據本發明 實施例的資源緩存方法包括
步驟201,調度服務器每隔第一預定時間(例如,IO秒)從數據庫獲 取資源的訪問熱度值,并判斷訪問熱度值是否達到預先設置的第 一 閾值, 在確定訪問熱度值達到預先設置的第 一 閾值的情況下,從數據庫獲取緩存服務器的負載值;在本發明的實施例中,從數據庫獲取的緩存服務器的負 載值可以不包括當前本身就緩存有該資源的緩存服務器。
步驟202,調度服務器根據訪問熱度值以及負載值確定復制該資源的 復制緩存服務器,也就是說,調度服務器從除本身就緩存有該資源的緩存 服務器之外的其他緩存服務器中選擇一個復制該資源的服務器。在以下的 描述中,將復制該資源的緩存服務器簡稱為復制緩存服務器。
步驟203,調度服務器通知復制緩存服務器從保存有該資源的緩存服 務器中復制資源并緩存。
從上述處理可以看出,本發明實施例將熱點資源判斷機制用于緩存系
統中,復制熱點資源到多臺緩存服務器中,以實現訪問的負載分流。通過 調度服務器實現各個緩存服務器之間的調度,使得多個緩存服務器共同提 供服務,從而提高了緩存系統的可擴展性和資源下載的效率,能夠減少系 統中繁忙的緩存服務器的負載,減輕出口帶寬的壓力。
下面,結合附圖,對本發明實施例中用戶請求下載未緩存資源的情況 的處理流程進行詳細說明。
圖3是本發明實施例的用戶請求下載未緩存資源的信令流程圖,如圖 3所示,包括如下處理
步驟301,用戶向源站服務器發送資源下載請求;
步驟302,資源緩存系統的檢測服務器獲取用戶向源站服務器發送的 資源下載請求,并向調度服務器發送資源查詢請求;
步驟303,調度服務器根據資源查詢請求向其數據庫查詢該資源是否 已經緩存在資源緩存系統的緩存服務器中,并指示數據庫將該資源的訪問 熱度值+1,其中,訪問熱度值根據預定算法確定,例如,根據資源的下載 次數及該資源每次下載的下載時間確定該資源的訪問熱度值;
步驟304,數據庫查詢該資源是否已經緩存,并更新該資源的訪問熱 度值。由于數據庫查詢到該資源沒有緩存,因此,向調度服務器發送未緩存響應消息;
步驟305,調度服務器接收到未緩存響應消息后,向重定向服務器轉 發未緩存響應消息;
步驟306,重定向服務器響應于未緩存響應消息,由于該資源未緩存 在資源緩存系統中,因此,不需要進行重定向操作,用戶依然從源站服務 器(外網)下載該資源;
步驟307,在用戶下載完成后,源站服務器向用戶發送下載完成消息; 隨著用戶下載次數的增多,資源緩存系統會將用戶下載次數較多的資源下 載到 一 臺緩存服務器中,以后的用戶從該緩存服務器中下載該資源;
步驟308,調度服務器向數據庫查詢該資源的訪問熱度值;
具體地,調度服務器每隔 一定時間向數據庫查詢資源的訪問熱度值, 在本發明實施例中,調度服務器可以查詢所有資源的訪問熱度值,也可以 查詢單獨查詢當前某個資源的訪問熱度值,其中,訪問熱度值包括下載 次數及下載時間;
步驟309,數據庫返回該資源的訪問熱度值,該訪問熱度值可以包括 所查詢資源的下載次數及下載時間等信息;
步驟310,調度服務器根據下載次數及下載時間計算單位時間內所查 詢資源的下載次數,并根據單位時間內所查詢資源的下載次數判斷相應的 訪問熱度值是否達到閾值,也就是說,判斷用戶是否從緩存有該資源的緩 存服務器中大量下載該資源,在下面的描述中,將上述情況下的資源稱為 熱點資源,如果調度服務器判斷訪問熱度值未達到預先設置的閾值,則不 進行任何操作;如果確定訪問熱度值達到閾值,則向數據庫查詢各緩存服 務器(不包括已緩存該資源的緩存服務器)的負載值;其中,所有緩存服 務器每隔一定時間就會將自己的負載值寫入數據庫,以供調度服務器的查 詢,例如,所有緩存服務器每隔5秒將自己的負載值寫入數據庫;
步驟311,數據庫向調度服務器返回各緩存服務器的負載值;步驟312,調度服務器根據該資源的訪問熱度值以及各緩存服務器的
負載值確定復制該資源的復制緩存服務器;進一步地,調度服務器可以根 據訪問熱度值和負載值選擇負載較低的服務器復制該資源;
具體地,在步驟312中,調度服務器選擇負載較低的服務器具體包括 如下處理1、調度服務器首先根據該資源的訪問熱度值確定單位時間內 該資源的下載次數,并根據單位時間內該資源的下載次數確定單位時間內 該資源下載次數的級別;2、調度服務器根據負載值將除已緩存該資源的 緩存服務器之外所有緩存服務器順序排序,得到排序結果;3、根據下載 次數的級別確定需要復制緩存服務器的數量,并根據該數量從排序結果中 選擇負載值低于預先設置的第二閾值的緩存服務器作為所述復制緩存服 務器。具體地,根據下載次數的級別確定需要復制緩存服務器的數量包括 單位時間內該資源的下載次數越多,單位時間內下載次數的級別越高,選 擇的緩存服務器的數量也就越多。
換句話說,調度服務器確定單位時間內資源的下載次數的級別后,根 據負載值確定空閑服務器的數量,并根據空閑服務器的數量確定資源的復 制份數,在確定復制的份數后,調度服務器就可以調度空閑緩存服務器向 源站服務器復制熱點資源。
步驟313,復制緩存服務器從已緩存該資源的緩存服務器中復制該資 源并緩存;
步驟314,完成復制的復制緩存服務器向已緩存該資源的緩存服務器
發送復制完成通知;
步驟315,復制緩存服務器向調度服務器發送復制完成通知; 步驟316,調度服務器將復制完成通知、以及復制信息寫入數據庫,
其中,復制信息為緩存有該資源的復制緩存服務器的信息。在以后用戶下
載該資源時,數據庫可以根據該資源的復制信息查詢該資源的緩存在哪幾
臺緩存服務器中。從上述處理可以看出,本發明實施例采用的技術方案摒棄了熱點資源 訪問只能由單臺緩存服務器負擔的做法。自動將熱點數據復制到多臺空閑 緩存服務器,可使多臺緩存服務器共同提供負載,能夠對緩存服務器資源 進行充分地利用。并且,在一個甚至多個緩存服務器出現故障時,為用戶 提供熱點資源的服務不會中斷,由于多臺緩存服務器共同提供服務,可以 減少出口帶寬的壓力,防止出口帶寬壓力突增,提高了系統的可靠性和可 擴展性。
在用戶下載該資源后,如果該資源的下載次數減少,需要對該資源所 占用的空間進行回收,在資源空間回收過程中,系統會根據該資源的訪問
熱度確定該資源需要保留的份數,隨后,根據確定的需要保留的份數,以 及根據各個緩存服務器的負載值將負載值比較高的緩存服務器中的資源
刪除。達到優化系統資源的目的。
下面,結合圖4,對熱點資源空間回收的處理過程進行詳細說明,圖
4是本發明實施例的熱點資源空間回收的信令流程圖,如圖4所示,包括 如下處理
步驟401,調度服務器每隔一定時間從數據庫獲取資源的復制信息以 及資源的訪問熱度值,在本發明實施例中,該資源為一個或多個熱點資源。
步驟402,數據庫向調度服務器返回熱點資源的復制信息以及訪問熱 度值,該訪問熱度值包括下載次數和下載時間;
步驟403,調度服務器判斷熱點資源的訪問熱度值是否達到預先設置 的第一閾值,如果達到預先設置的第一閾值,則不進行任何處理,如果熱 點資源的訪問熱度值未達到預先設置的第一閾值,調度服務器根據熱點資 源的復制信息向數據庫查詢緩存有熱點資源的所有緩存服務器的負載值;
步驟404,數據庫根據熱點資源的復制信息查詢緩存有該熱點資源的 所有緩存服務器,并將緩存有該熱點資源的所有緩存服務器的負載值及該 熱點資源的訪問熱度值發送到調度服務器;步驟405,調度服務器根據熱點資源的訪問熱度值確定熱點資源在單 位時間內的下載次數,根據單位時間內的下載次數確定熱點資源下載次數
的級別,并根據該級別確定熱點資源保存復制的份數;隨后,調度服務器
根據緩存有熱點資源的所有緩存服務器的負載值以及熱點資源保存復制 的份數確定至少 一 個負載高于預先設置的第三閾值的緩存有熱點資源的 緩存服務器,隨后,調度服務器不再將之后用戶發送的資源下載請求調度 到確定的緩存服務器上,并通知確定的緩存服務器在無用戶下載該資源
后,刪除該資源;即,優先刪除負載相對高的緩存服務器上的熱點資源。 步驟406,確定的緩存服務器在無用戶下載該資源后,將熱點資源刪
除,并向調度服務器返回刪除完成消息;
步驟407,調度服務器將刪除完成消息寫入數據庫,并更新數據庫中
的熱點資源的復制信息。
從上述處理可以看出,通過熱點資源空間回收機制可以」提高存儲空間
利用率,確保存儲空間不被浪費。實現資源緩存系統的負載分流、存儲空
間自動清理。
根據本發明的實施例,提供了一種緩存資源獲取方法,圖5是本發明實 施例的資源獲取方法的流程圖,如圖5所示,根據本發明實施例的緩存資源 獲取方法包括
步驟501,-接收資源查詢請求,#^居資源查詢請求向數據庫查詢并確定 用戶請求下載的資源已緩存;
步驟502,接收數據庫發送的緩存有資源的所有緩存服務器的信息以及 緩存有資源的所有緩存服務器的負載值;
步驟503,根據緩存有資源的所有緩存服務器的信息以及緩存有資源 的所有緩存服務器的負載值選擇目標下載緩存服務器,并通知用戶從目標 下載緩存服務器中下載資源。具體地,可以通過重定向服務器通知用戶從 目標下載緩存服務器中下載資源。通過上述處理,用戶可以從系統中多臺緩存服務器中下載資源,在其 中 一 臺緩存服務器出現故障的情況下,可以從其他緩存有該資源的緩存服 務器中下載,提高了用戶下載資源的效率和速度。
下面,結合附圖,對麥發明實施例的上述處理過程中用戶請求下載已 緩存資源的處理流程進行說明。圖6是本發明實施例的用戶請求下載已緩
存資源的信令流程圖,如圖6所示,包括如下處理
步驟601,用戶向源站服務器發送資源下載請求;
步驟602,資源緩存系統的檢測服務器獲取用戶向源站服務器發送的 資源下載請求,并向調度服務器發送資源查詢請求;
步驟603,調度服務器根據資源查詢請求向其數據庫查詢該資源是否 已經緩存在資源緩存系統的緩存服務器中,并指示數據庫將該資源的訪問 熱度值+l; '
步驟604,數據庫查詢該資源是否已經緩存,并更新該資源的訪問熱 度值。在判斷該資源已經緩存后,確定該資源緩存在哪些緩存服務器中, 并將所有緩存該資源的緩存服務器的信息發送到調度服務器;
步驟605,調度服務器向數據庫查詢所有緩存該資源的緩存服務器的 負載值;
步驟606,數據庫向調度服務器反饋所有緩存該資源的緩存服務器的 負載值;
步驟607,調度服務器選擇負載值最低的緩存該資源的緩存服務器作 為目標下載緩存服務器,并將該目標下載緩存服務器的信息通知重定向服 務器;
步驟608,重定向服務器將用戶的資源下載請求重定向到該目標下載 緩存服務器;
步驟609,用戶連接至該目標下載緩存服務器,并從該目標下載緩存 服務器中下載該資源。從上述處理可以看出,通過熱點資源訪問多節點分流技術滿足用戶對 熱點數據訪問需求,能夠解決熱點資源訪問造成的系統瓶頸問題,最大程 度提高了緩存服務器的利用率,具有高可擴展性和高可靠性。
需要說明的,本發明實施例可廣泛應用在資源緩存系統中不同緩存服 務器之間數據自動復制的各個應用場景,通過自動復制的方式,可以實現 不同的應用功能,在實際應用中,包括但不限于以下應用功能1、用于 解決內容緩存系統動態擴展的問題,在緩存服務器性能或容量不足時動態
添加緩存服務器而不影響系統正常運行;2、用于解決內容緩存系統數據 安全問題,例如,防病毒;3、用于解決資源緩存系統動態遷移的問題, 例如,按文件訪問熱度分服務器存儲;4、用于解決資源緩存系統內容分 類存儲問題,例如,按文件訪問量不同自動遷移到不同應用服務器。
根據本發明的實施例,提供了一種資源緩存裝置,圖7是本發明實施 例的資源緩存裝置的示意圖,如圖7所示,根據本發明實施例的資源緩存 裝置包括獲取模塊70、第一確定模塊72、第一通知模塊74。下面,對 本發明實施例的資源緩存裝置進行詳細說明。需要說明的是,在本發明實 施例中,資源緩存裝置可以為調度服務器。
具體地,獲取模塊70用于每隔第一預定時間(例如,IO秒)從數據 庫獲取資源的訪問熱度值,并在判斷訪問熱度值達到預先設置的第 一 閾值 的情況下,從數據庫獲取緩存服務器的負載值;在本發明的實施例中,從 數據庫獲取的緩存服務器的負載值可以不包括當前本身就緩存有該資源 的緩存服務器。
第 一確定模塊72根據訪問熱度值以及負載值確定復制資源的復制緩 存服務器;具體地,第一確定模塊72中還包括確定子模塊、排序模塊、 選擇模塊。
其中,確定子模塊根據訪問熱度值確定單位時間內資源的下載次數的 級別;排序模塊根據負載值將除保存有資源的緩存服務器之外的所有緩存服務器順序排序,得到排序結果;選擇模塊根據下載次數的級別確定需要 復制緩存服務器的數量,并根據該數量從排序結果中選擇負載值低于預先 設置的第二闞值的緩存服務器作為復制緩存服務器。具體地,根據下載次
數的級別確定需要復制緩存服務器的數量包括單位時間內該資源的下載 次數越多,單位時間內下載次數的級別越高,選擇的緩存服務器的個數就 越多。
在第一確定模塊72確定復制資源的復制緩存服務器之后,第一通知 模塊74通知復制緩存服務器從保存有資源的緩存服務器中復制資源并緩 存。
從上述處理可以看出,本發明實施例采用的技術方案摒棄了熱點資源 訪問只能由單臺緩存服務器負擔的做法。自動將熱點數據復制到多臺空閑 緩存服務器,可使多臺緩存服務器共同提供負載,能夠對緩存服務器資源 進行充分地利用。并且,在一個甚至多個緩存服務器出現故障時,為用戶 提供熱點資源的服務不會中斷,由于多臺緩存服務器共同提供服務,可以 減少出口帶寬的壓力,防止出口帶寬壓力突增,提高了系統的可靠性和可 擴展性。
在用戶下載該資源后,如果該資源的下載次數減少,需要對該資源所 占用的空間進行回收,在資源空間回收過程中,系統會根據該資源的訪問 熱度確定該資源需要保留的份數,隨后,根據確定的需要保留的份數,以 及根據各個緩存服務器的負載值將負載值比較高的緩存服務器中的資源
刪除。達到優化系統資源的目的。
具體地,資源緩存裝置還包括第二確定模塊、第二通知模塊、第一 接收模塊、更新模塊。
其中,當保存有資源的緩存服務器的訪問熱度值低于第一閾值時,第 二確定模塊在緩存有資源的緩存服務器中確定至少一個緩存服務器;具體 地,第二確定模塊根據熱點資源的訪問熱度值確定熱點資源在單位時間內的下載次數,根據單位時間內的下載次數確定熱點資源下載次數的級別, 并根據該級別確定熱點資源保存復制的份數;隨后,第二確定模塊根據緩 存有熱點資源的所有緩存服務器的負載值以及熱點資源保存復制的份數 確定至少 一 個負載高于預先設置的第三閾值的緩存有熱點資源的緩存服 務器。
隨后,第二通知模塊通知確定的緩存服務器在無用戶下載該資源后,
刪除資源;緩存服務器在無用戶下載該資源后,將熱點資源刪除,并向調 度服務器的第一接收模塊返回刪除完成消息,第一接收模塊接收緩存服務 器發送的刪除完成消息;更新模塊用于將刪除完成消息寫入數據庫,并更 新數據庫中資源的復制信息。
從上述處理可以看出,通過熱點資源空間回收機制可以提高存儲空間 利用率,確保存儲空間不被浪費。實現資源緩存系統的負載分流、存儲空 間自動清理。
根據本發明的實施例,提供了一種資源獲取裝置,圖8是本發明實施 例的資源獲泉裝置的示意圖,如圖8所示,根據本發明實施例的資源獲取 裝置包括第二接收模塊80、第三確定模塊81、第三接收模塊82、第四 確定模塊83、第三通知模塊84。下面,對本發明實施例的資源獲取裝置 進行詳細的說明。需要說明的是,本發明實施例中的資源獲取裝置為調度 服務器。
具體地,首先,用戶向源站服務器發送資源下載請求,資源緩存系統 的檢測服務器獲取用戶向源站服務器發送的資源下載請求,并向調度服務 器發送資源查詢請求,調度服務器的第二接收模塊80接收資源查詢請求; 隨后,第三確定模塊81根據所述資源查詢請求向所述數據庫查詢并確定 用戶請求下載的資源已緩存;在數據庫判斷該資源已經緩存后,確定該資 源緩存在哪些緩存服務器中,并將所有緩存該資源的緩存服務器的信息發 送到調度服務器,調度服務器的第三接收模塊82接收所述數據庫發送的緩存有所述資源的所有緩存服務器的信息以及緩存有所述資源的所有緩
存服務器的負載值;隨后,第四確定模塊83根據緩存有所述資源的所有
緩存服務器的信息以及緩存有所述資源的所有緩存服務器的負載值選擇
目標下載緩存服務器;第三通知模塊84將該目標下載緩存服務器的信息 通知重定向服務器,重定向服務器將用戶的資源下載請求重定向到該目標 下載緩存服務器,隨后,用戶就可以連接至該目標下載緩存服務器,并從 該目標下載緩存服務器中下載該資源。
通過上述處理,用戶可以從系統中多臺緩存服務器中下載資源,在其 中一臺緩存服務器出現故障的情況下,可以從其他緩存有該資源的緩存服 務器中下載,提高了用戶下載資源的效率和速度。
根據本發明的實施例,提供一種資源緩存系統,圖9是本發明實施例 的資源緩存系統的示意圖,如圖9所示,根據本發明實施例的資源緩存系 統包括數據庫90、調度服務器92、緩存服務器94。下面,對本發明實 施例的資源緩存系統進行詳細說明。
具體地,調度服務器92每隔第一預定時間(例如,IO秒)從數據庫 90獲取資源的訪問熱度值,并判斷訪問熱度值是否達到預先設置的第 一閾 值,在確定訪問熱度值達到預先設置的第一閾值的情況下,從數據庫90 獲取各個緩存服務器94的負載值;隨后,調度服務器92根據訪問熱度值 以及負載值確定至少一個復制該資源的緩存服務器94;在調度服務器92 的控制下,至少一個緩存服務器94從保存有該資源的緩存服務器中復制 該資源并緩存。其中,數據庫90用于存儲資源的訪問熱度值以及緩存服 務器94的負載值。在本發明實施例中,數據庫90還可以用于保存所有資 源的復制信息。
此外,本發明實施例還可以包括檢測服務器和重定向服務器,其中, 檢測服務器用于獲取用戶向源站服務器發送的資源下載請求,并在獲取了 資源下載請求后,向調度服務器92發送資源查詢請求;重定向服務器用于在調度服務器92確定了為用戶提供服務的目標下載緩存服務器后,在
調度服務器92的控制下,將用戶的資源下載請求重定向到目標下載緩存
服務器,用戶就可以從目標下載緩存服務器下載請求的資源。
從上述處理可以看出,通過資源緩存系統的熱點資源復制機制,實現
資源緩存系統服務器負載分流,使得熱點資源的訪問不會造成系統瓶頸。 下面,對本發明實施例中用戶請求下載未緩存資源的情況、用戶請求
下載已緩存資源的情況、以及資源空間回收機制的處理過程進行詳細說明。
首先,對用戶請求下載未緩存資源情況下的處理過程進行說明。 用戶向源站服務器發送資源下載請求,資源緩存系統的檢測服務器獲
取用戶向源站服務器發送的資源下載請求,并向調度服務器92發送資源 查詢請求。調度服務器92根據資源查詢請求向其數據庫90查詢該資源是 否已經緩存在資源緩存系統的緩存服務器94中,并指示數據庫90將該資 源的訪問熱度值+1。隨后,數據庫90查詢該資源是否已經緩存,并更新 該資源的訪問熱度值。由于數據庫卯查詢到該資源沒有緩存,因此,數 據庫卯向調度服務器92發送未緩存響應消息。調度服務器92接收到未 緩存響應消息后,向重定向服務器轉發未緩存響應消息,由于該資源未緩 存在資源緩存系統中,因此,重定向服務器不需要進行重定向操作,用戶 依然從源站服務器(外網)下載該資源。在用戶下載完成后,源站服務器 向用戶發送下載完成消息;隨著用戶下載次數的增多,資源緩存系統會將 用戶下載次數較多的資源下載到 一 臺緩存服務器94中,以后的用戶從該 緩存服務器中下載該資源。
隨后,調度服務器92向數據庫卯查詢該資源的訪問熱度值;數據庫 卯返回該資源的訪問熱度值;調度服務器92根據獲取的訪問熱度值判斷 是否達到預先設置的第一閾值,即,判斷用戶是否從緩存有該資源的緩存 服務器中大量下載該資源,在下面的描述中,將上述情況下的資源成為熱點資源,如果調度服務器92判斷訪問熱度值未達到預先設置的第一閾值,
則不進行任何操作,如杲確定訪問熱度值達到第 一 閾值,則向數據庫90 查詢各緩存服務器94(不包括已緩存該資源的緩存服務器)的負載值;其 中,所有緩存服務器94每隔一定時間就會將自己的負載值寫入數據庫90, 以供調度服務器92的查詢,例如,所有緩存服務器94每隔5秒將自己的 負載值寫入數據庫90;
在上述過程中,調度服務器92判斷訪問熱度值是否達到預先設置的 閾值具體包括如下處理1、調度服務器92每隔一定時間從數據庫90獲 取該資源的訪問熱度值,其中,該資源的訪問熱度值可以根據預定算法確 定,例如,根據該資源的下載次數及該資源每次下載的下載時間確定該資 源的訪問熱度值;2、調度服務器92根據下載次數及下載時間計算單位時 間內該資源的下載次數,并根據單位時間內該資源的下載次數判斷訪問熱 度值是否達到預先設置的第 一 閾值。
隨后,數據庫卯向調度服務器92返回除已緩存該資源的緩存服務器 之外各緩存服務器94的負載值;調度服務器92根據該資源的訪問熱度值 以及除已緩存該資源的緩存服務器之外各緩存服務器94的負載值確定除 已緩存該資源的緩存服務器之外至少一個復制該資源的復制緩存服務器 94;也就是說,調度服務器92根據訪問熱度值和負載值選擇負載較低的 服務器復制該資源。
具體地,調度服務器92選擇負載較低的服務器具體包括如下處理1、 調度服務器92首先根據該資源的訪問熱度值確定單位時間內該資源的下 載次數,并根據單位時間內該資源的下載次數確定單位時間內該資源下載 次數的級別;2、調度服務器92根據負載值將除保存有該資源的緩存服務 器之外的所有緩存服務器94順序排序,得到排序結果;3、調度服務器92 根據下載次數的級別確定需要復制緩存服務器的數量,并根據該數量從排 序結果中選擇負載值低于預先設置的第二閾值的緩存服務器94作為復制緩存服務器。具體地,根據下載次數的級別確定需要復制緩存服務器的數 量包括單位時間內該資源的下載次數越多,單位時間內下載次數的級別
越高,選擇的緩存服務器94的個數就越多。
隨后,至少一個復制緩存服務器94從保存有該資源的緩存服務器中 復制該資源并緩存;保存有該資源的緩存服務器向完成復制的至少一個復 制緩存服務器94發送復制完成通知;至少一個復制緩存服務器94向調度 服務器92發送復制完成通知;調度服務器92取至少一個復制緩存服務器 94發送的復制完成通知。隨后,調度力良務器92將復制完成通知、以及該 資源的復制信息寫入數據庫90,在以后用戶下載該資源時,數據庫90可 以根據該資源的復制信息查詢該資源的緩存在哪幾臺緩存服務器94中。
從上述處理可以看出,本發明實施例采用的技術方案摒棄了熱點資源 訪問只能由單臺緩存服務器負擔的做法。自動將熱點數據復制到多臺空閑 緩存服務器,既可使多臺緩存服務器共同提供負載,又提高了系統的可靠 性和可擴展性。此外,通過熱點資源的復制機制,熱點數據的并發訪問可 以由多個緩存服務器分擔,能夠對緩存服務器資源進行充分地利用。并且, 在一個甚至多個緩存服務器出現故障時,為用戶提供熱點資源的服務不會 中斷;此外,由于多臺緩存服務器共同提供服務,可以減少出口帶寬的壓 力,防止出口帶寬壓力突增。.
下面,對用戶請求下載已緩存資源情況下的處理進行詳細說明。
具體地,用戶向源站服務器發送資源下載請求;資源緩存系統的檢測 服務器獲取用戶向源站服務器發送的資源下載請求,并向調度服務器92 發送資源查詢請求;調度服務器92根據資源查詢請求向其數據庫90查詢 該資源是否已經緩存在資源緩存系統的緩存服務器94中,隨后,調度服 務器92指示數據庫卯將該資源的訪問熱度值+1,即,更新資源的訪問熱 度值;數據庫90根據該資源的復制信息查詢該資源是否已經緩存,并更 新該資源的訪問熱度值。數據庫卯在判斷該資源已經緩存后,確定該資源緩存在哪些緩存服務器94中,并將所有緩存該資源的緩存服務器94的 信息發送到調度服務器92;調度服務器92向數據庫90查詢所有緩存該資 源的緩存服務器94的負載值;數據庫90向調度服務器92反饋所有緩存 該資源的緩存服務器94的負載值;調度服務器92選擇緩存有該資源的所 有緩存服務器94中負載值最低的緩存服務器作為目標下載緩存服務器, 調度服務器92將該目標下載緩存服務器94的信息通知重定向服務器;重 定向服務器將用戶的資源下載請求重定向到該目標下載緩存服務器94;用 戶連接至該目標下載緩存服務器94,并從該目標下載緩存服務器94中下 載該資源。
,人上述處理可以看出,通過熱點資源訪問多節點分流技術滿足用戶對 熱點數據訪問需求,能夠解決熱點資源訪問造成的系統瓶頸問題,最大程 度提高了緩存服務器94的利用率,具有高可擴展性和高可靠性。 下面,對熱點資源空間回收機制的處理過程進行詳細說明。 具體地,調度服務器92每隔一定時間從數據庫卯獲取資源的復制信 息以及資源的訪問熱度值,在本發明實施例中,該資源為一個或多個熱點 資源。數據庫90向調度服務器92返回熱點資源的訪問熱度值;調度服務 器92判斷熱點資源的訪問熱度值是否達到預先設置的閾值,如果達到預 先設置的閾值,則不進行任何處理,如果熱點資源的訪問熱度值未達到預 先設置的閾值,調度服務器92向數據庫卯查詢緩存有熱點資源的緩存服 務器94的負載值;數據庫卯根據熱點資源的復制信息查詢緩存有該熱點 資源的所有復制緩存服務器94,并將緩存有該熱點資源的所有復制緩存服 務器94的負載值及該熱點資源的訪問熱度值發送到調度服務器92;隨后, 調度服務器92根據熱點資源的訪問熱度值(即,下載時間及下載次數) 確定熱點資源在單位時間內的下載次數,根據單位時間內的下載次數確定 熱點資源下載次數的級別,并根據該級別確定熱點資源保存復制的份數; 隨后,調度服務器92根據緩存有熱點資源的緩存服務器94的負載值以及熱點資源保存復制的份數確定需要刪除熱點資源的至少 一個負載值高于 預先設置的第三閾值的緩存有熱點資源的緩存服務器94,隨后,調度服務 器92不再將之后用戶發送的資源下載請求調度到確定的負載值高于預先 設置的第三閾值的緩存服務器上,并通知確定的至少 一個負載值高于預先
設置的第三閾值的緩存服務器在無用戶下載該資源后,刪除該資源;即, 優先刪除負載相對高的緩存服務器94上的熱點資源。至少一個負載值高 于預先設置的第三閾值的緩存服務器94在無用戶下載該資源后,將熱點 資源刪除,并向調度服務器92返回刪除完成消息;調度服務器92將刪除 完成消息寫入數據庫90,并更新數據庫90中的熱點資源的復制信息。
從上述處理可以看出,通過熱點資源空間回收機制可以提高存儲空間 利用率,確保存儲空間不被浪費。實現資源緩存系統的負載分流、存儲空 間自動清理。
下面,對本發明實施例的資源緩存系統為P2P緩存系統的情況進行說 明。圖IO是本發明實施例的P2P緩存系統的結構示意圖,如圖10所示, P2P緩存系統包括用戶1,用戶2,用戶n,緩存服務器l,緩存服 務器2,緩存服務器3,緩存服務器4。
如上所述,調度服務器92判斷存儲在緩存服務器4的資源P為熱點 資源,并計算P的訪問熱度值,決定將資源P復制2份到兩臺援存服務器 94,即,緩存服務器1和緩存服務器2,優選地,優先向空閑緩存服務器 94復制。調度服務器92發出指令讓緩存服務器1和緩存服務器2將資源 P復制到本地。緩存服務器l和緩存服務器2復制完成后,通過通知數據 庫的方式通知調度服務器92,同時通告調度服務器92哪些服務器可為用 戶提供該緩存資源。此后,調度服務器92便可根據調度算法調度可以訪 問此資源的緩存服務器l、緩存服務器2、緩存服務器4為用戶提供服務。 當熱點值改變到閾值時,調度服務器會根據緩存服務器1、緩存服務器2、 緩存服務器4的狀態減少適量的熱點文件副本,不會造成資源浪費。使用本機磁盤作為存儲,通過調度服務器92計算統計熱點資源并控
制復制方向,各個含有相同熱點資源的緩存服務器94共同提供訪問,可 滿足P2P緩存系統大用戶量的應用,尤其適用于有較多熱點資源的場景。
圖11是本發明實施例的對資源分類存儲的系統結構示意圖,如圖11 所示,包括用戶1、用戶2、用戶3,調度服務器、通用緩存服務器、媒體 資源緩存服務器、Exe資源緩存服務器、Iso資源緩存服務器。
調度服務器通過熱點調度算法將通用服務器中的熱點文件,按照文件 類型,復制到優化過的不同性能的專用緩存服務器中,由專用緩存服務器 對用戶提供高性能的數據傳輸,充分利用不同性能服務器的資源,以此提 高整個緩存系統性能。
上述系統構架可以應用于原有系統的擴充,將不同性能的服務器充分 利用,節省整體成本。
以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說 明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以 是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多 個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現 本實施例方案的目的。本領域普通技術人員在不付出創造性的勞動的情況 下,即可以理解并實施。
結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以 電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟 件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成 及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特 定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同 方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。
綜上所述,借助于本發明的技術方案,通過將熱點資源判斷機制用于 緩存系統中,復制熱點資源到多臺緩存服務器中,以實現訪問負載分流。通過調度服務器實現各個緩存服務器之間的調度,使得多個緩存服務器共 同提供服務,從而提高了緩存系統的可擴展性和效率。在一個甚至多個緩 存服務器出現故障時,為用戶提供熱點資源的服務不會中斷;此外,由于 多臺緩存服務器共同提供服務,可以減少出口帶寬的壓力,防止出口帶寬 壓力突增,最大程度提高了緩存服務器的利用率。通過熱點資源空間回收 機制可以提高存儲空間利用率,確保存儲空間不被浪費。實現資源緩存系 統的負載分流、存儲空間自動清理。
最后應說明的是以上實施例僅用以說明本發明的技術方案,而非對 其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通 技術人員應當理解其依然可以對前述各實施例所記載的技術方案進行修 改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不 使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。
權利要求
1、一種資源緩存方法,其特征在于,包括每隔第一預定時間從數據庫獲取資源的訪問熱度值,并在判斷所述訪問熱度值達到預先設置的第一閾值的情況下,從所述數據庫獲取緩存服務器的負載值;根據所述訪問熱度值以及所述負載值確定復制所述資源的復制緩存服務器,并通知所述復制緩存服務器從保存有所述資源的緩存服務器中復制所述資源并緩存。
2、 根據權利要求1所述的方法,其特征在于,所述根據所述訪問熱度值 以及所述負載值確定所述復制緩存服務器包括根據所述訪問熱度值確定單位時間內所述資源的下載次數的級別; 根據所述負載值將除保存有所述資源的緩存服務器之外的所有緩存服務器順序排序,得到排序結果;根據所述下載次數的級別確定需要所述復制緩存服務器的數量,并根據所述數量從所述排序結果中選擇負載值低于預先設置的第二閾值的緩存服務器作為所述復制緩存服務器。
3、 根據權利要求1所述的方法,其特征在于,還包括 獲取所述復制緩存服務器發送的復制完成通知,將所述復制完成通知以及復制信息寫入所述數據庫,其中,所述復制信息為緩存有所述資源的復制 緩存服務器的信息。
4、 根據權利要求3所述的方法,其特征在于,還包括當保存有所述資源的緩存服務器的訪問熱度值低于所述第一閾值時,在 緩存有所述資源的緩存服務器中確定至少一個緩存服務器,并通知所述確定 的緩存服務器刪除所述資源;接收所述緩存服務器發送的刪除完成消息,將所述刪除完成消息寫入所 述數據庫,并更新所述數據庫中所述資源的復制信息。
5、 一種資源獲取方法,其特征在于,包括接收資源查詢請求,向數據庫查詢所請求的資源是否有緩存;接收所述數據庫發送的緩存有所述資源的所有緩存服務器的信息以及緩 存有所述資源的所有緩存服務器的負載值;根據緩存有所述資源的所有緩存服務器的信息以及緩存有所述資源的所 有緩存服務器的負載值選擇目標下載緩存服務器;通知所述用戶^v所述目標下載緩存服務器中下載所述資源。
6、 根據權利要求5所述的方法,其特征在于,所述根據緩存有所述資源 的所有緩存服務器的信息以及緩存有所述資源的所有緩存服務器的負載值選 擇目標下載緩存服務器包括選擇緩存有所述資源的所有緩存服務器中負載值最低的緩存服務器作為 目標下載緩存服務器。
7、 一種資源緩存裝置,其特征在于,包括獲取模塊,用于每隔第一預定時間從數據庫獲取資源的訪問熱度值,并 在判斷所述訪問熱度值達到預先設置的第一閾值的情況下,從所述數據庫獲 取緩存服務器的負載值;第一確定模塊,用于根據所述訪問熱度值以及所述負載值確定復制所述 資源的復制緩存服務器;第一通知模塊,用于通知所述復制緩存服務器從保存有所述資源的緩存 服務器中復制所述資源并緩存。
8、 根據權利要求7所述的裝置,其特征在于,所述第一確定模塊具體包括確定子模塊,用于根據所述訪問熱度值確定單位時間內所述資源的下載 次數的級別;排序模塊,用于根據所述負載值將除保存有所述資源的緩存服務器之外的所有緩存服務器順序排序,得到排序結果;選擇模塊,用于根據所述下載次數的級別確定需要所述復制緩存服務器的數量,并根據所述數量從所述排序結果中選擇負載值低于預先設置的第二閾值的緩存服務器作為所述復制緩存服務器。
9、 根據權利要求7所述的裝置,其特征在于,所述資源緩存裝置還包括第二確定模塊,用于當保存有所述資源的緩存服務器的訪問熱度值低于 所述第 一閾值時,在緩存有所述資源的緩存服務器中確定至少一個緩存服務器;第二通知模塊,用于通知所述確定的緩存服務器刪除所述資源; 第一接收模塊,用于接收所述確定的緩存服務器發送的刪除完成消息; 更新模塊,用于將所述刪除完成消息寫入所述數據庫,并更新所述數據 庫中所述資源的復制信息。
10、 一種資源獲取裝置,其特征在于,包括 第二接收模塊,用于接收資源查詢請求;第三確定模塊,用于根據所述資源查詢請求向數據庫查詢所請求的資源 是否有緩存;第三接收4莫塊,用于接收所述數據庫發送的緩存有所述資源的所有緩存 服務器的信息以及緩存有所述資源的所有緩存服務器的負載值;第四確定模塊,用于根據緩存有所述資源的所有緩存服務器的信息以及 緩存有所述資源的所有緩存服務器的負載值選擇目標下載緩存服務器;第三通知模塊,用于通知所述用戶從所述目標下載緩存服務器中下載所 述資源。
11、 一種資源緩存系統,其特征在于,包括數據庫,用于存儲資源的訪問熱度值以及緩存服務器的負載值; 調度服務器,用于每隔第一預定時間從數據庫獲取資源的訪問熱度值, 并在判斷所述訪問熱度值達到預先設置的第一閾值的情況下,從所述數據庫 獲取緩存服務器的負載值,根據所述訪問熱度值以及所述負載值確定復制所 述資源的復制緩存服務器,并通知所述復制緩存服務器從保存有所述資源的 緩存服務器中復制所述資源;緩存服務器,用于在所述調度服務器的控制下從保存有所述資源的緩存 服務器中復制所述資源并緩存。
全文摘要
本發明提供一種源緩存方法、資源獲取方法及其裝置、系統,其中,源緩存方法包括每隔第一預定時間從數據庫獲取資源的訪問熱度值,并在判斷訪問熱度值達到預先設置的第一閾值的情況下,從數據庫獲取緩存服務器的負載值;根據訪問熱度值以及負載值確定復制資源的復制緩存服務器,并通知復制緩存服務器從保存有資源的緩存服務器中復制資源并緩存。通過將熱點資源復制到多個空閑服務器中,克服了現有技術中同一資源只能在一臺緩存服務器中緩存而導致的相對空閑的緩存服務器無法為繁忙的緩存服務器分擔負載的缺陷,實現了多個緩存服務器共同提供服務,從而提高了緩存系統的可擴展性和工作效率。
文檔編號H04L29/08GK101668046SQ20091020723
公開日2010年3月10日 申請日期2009年10月13日 優先權日2009年10月13日
發明者晨 公, 剛 蘭, 周樹國, 瑞 王 申請人:成都市華為賽門鐵克科技有限公司