專利名稱:分布式緩存的方法及設備的制作方法
技術領域:
本發(fā)明實施例涉及通信技術領域,尤其涉及分布式緩存的方法及設備。
背景技術:
隨著互聯(lián)網技術的不斷普及,互聯(lián)網上傳輸的數據量出現(xiàn)了爆發(fā)式的增長。一方面,由于人們的上網需求從原來的網頁瀏覽、電子郵件等數據量小、實時性低的應用轉向對帶寬要求很高的高清視頻和圖片。另一方面,由于終端設備的豐富,人們可以隨時隨地的通過各種接入方式訪問網絡資源。傳統(tǒng)的內容對象獲取方式使得眾多客戶端同時向內容對象對應的服務器建立會話,造成服務器不堪重負,網絡負載不均,局部網絡擁塞不堪,為了解決上述問題,需要不斷的升級網絡設備擴大網絡容 量,從而增加了網絡的投資成本,上述內容對象包含但不限于視頻、圖片、文件、軟件包等。緩存技術是將用戶訪問或下載的內容對象在緩存設備中緩存一個副本,當內容對象再次被用戶訪問或下載的時候,不必連接到內容對象對應的源服務器,而直接由緩存了內容對象副本的緩存設備提供,從而加速內容對象的訪問和下載,并降低對緩存設備的上一級網絡帶寬占用,如緩存設備在接入網絡,則會降低對接入網絡的上一級骨干網的帶寬占用。通過緩存設備可以實現(xiàn)一次外網訪問,多次內網服務的目的。在對現(xiàn)有技術的研究和實踐過程中,本發(fā)明的發(fā)明人發(fā)現(xiàn),在接入網絡中受成本和設備空間的影響,接入網絡中每個緩存設備的高速緩沖存儲器(Cache)容量都很小,如果接入網絡中有多個緩存設備,每個緩存設備分別連接多個不同的用戶,當這些用戶訪問網絡的頻率和業(yè)務量出現(xiàn)較大差別時,連接的用戶訪問網絡比較頻繁的緩存設備經常出現(xiàn)緩存設備的Cache被占滿的情況,當有用戶繼續(xù)通過Cache被占滿的緩存設備來訪問網絡時,該緩存設備將不會再有緩存的能力,如果這些用戶訪問的內容對象之前沒有被該緩存設備緩存過,將不會再被該緩存設備緩存,下次有用戶要訪問這個內容對象,則只能直接到該內容對象對應的源服務器獲取數據,這樣這些用戶獲取該內容對象的速度將受到影響,而且還增加了對接入網絡的上一級骨干網帶寬的占用。
發(fā)明內容
本發(fā)明實施例提供了分布式緩存的方法及設備,解決在接入網絡中由于緩存設備的Cache容量小,當連接緩存設備的用戶訪問網絡頻繁時出現(xiàn)緩存設備Cache被占滿后頻繁到內容對象對應的源服務器獲取內容對象時,導致的用戶獲取內容對象速度慢,增加對骨干網帶寬占用的問題。根據本發(fā)明實施例的一個方面,提供一種分布式緩存的方法,包括第一緩存設備接收用戶發(fā)送來的第一內容對象請求消息,所述第一內容對象請求消息包含第一內容對象的標識和所述第一內容對象對應的源服務器的互聯(lián)網協(xié)議IP地址,所述第一內容對象請求消息用于獲得所述第一內容對象;如果所述第一緩存設備沒有緩存所述第一內容對象,則根據所述第一內容對象的標識獲得第二緩存設備的地址;根據所述第二緩存設備的地址向所述第二緩存設備請求所述第一內容對象;當所述第二緩存設備沒有緩存所述第一內容對象時,根據所述第一內容對象對應的源服務器的IP地址從所述源服務器獲取所述第一內容對象;所述第一緩存設備向所述第二緩存設備發(fā)送所述第一內容對象,以便于所述第二緩存設備緩存所述第一內容對象。根據本發(fā)明實施例的另一方面,提供一種分布式緩存的方法,包括第一緩存設備接收用戶發(fā)送來的第一內容對象請求消息,所述第一內容對象請求消息包含第一內容對象的標識,所述第一內容對象請求消息用于獲得所述第一內容對象;如果所述第一緩存設備沒有緩存所述第一內容對象,則根據所述第一內容對象的 標識獲得第二緩存設備的地址;所述第一緩存設備根據所述第二緩存設備的地址向所述第二緩存設備請求所述第一內容對象;當所述第二緩存設備緩存有所述第一內容對象時,所述第一緩存設備接收所述第二緩存設備發(fā)送的所述第一內容對象;所述第一緩存設備將所述第一內容對象發(fā)送給所述用戶。根據本發(fā)明實施例的另一方面,提供一種緩存設備,所述緩存設備包括第一請求接收單元、處理單元、請求發(fā)送單元、獲取單元和內容對象發(fā)送單元,其中所述第一請求接收單元,用于接收用戶發(fā)送來的第一內容對象請求消息,所述第一內容對象請求消息包含第一內容對象的標識和所述第一內容對象對應的源服務器的互聯(lián)網協(xié)議IP地址,所述第一內容對象請求消息用于獲得所述第一內容對象;所述處理單元,用于在所述緩存設備沒有緩存所述第一內容對象時,根據所述第一內容對象的標識獲得第二緩存設備的地址;所述請求發(fā)送單元,用于根據所述第二緩存設備的地址向所述第二緩存設備請求所述第一內容對象;所述獲取單元,用于當所述第二緩存設備沒有緩存所述第一內容對象時,根據所述第一內容對象對應的源服務器的IP地址從所述源服務器獲取所述第一內容對象;所述內容對象發(fā)送單元,用于向所述第二緩存設備發(fā)送所述第一內容對象,以便于所述第二緩存設備緩存所述第一內容對象。根據本發(fā)明實施例的又一方面,提供一種緩存設備,所述緩存設備包括第一請求接收單元、處理單元、請求發(fā)送單元、內容對象接收單元和內容對象發(fā)送單元,其中所述第一請求接收單元,用于接收用戶發(fā)送來的第一內容對象請求消息,所述第一內容對象請求消息包含第一內容對象的標識,所述第一內容對象請求消息用于獲得所述第一內容對象;所述處理單元,用于當所述緩存設備沒有緩存所述第一內容對象時,則根據所述第一內容對象的標識獲得第二緩存設備的地址;所述請求發(fā)送單元,用于根據所述第二緩存設備的地址向所述第二緩存設備請求所述第一內容對象;所述請求接收單元,用于當所述第二緩存設備緩存有所述第一內容對象時,接收所述第二緩存設備發(fā)送的所述第一內容對象;所述內容對象發(fā)送單元,用于將所述第一內容對象發(fā)送給所述用戶。綜上,本發(fā)明實施例提供了新的緩存方法,通過本發(fā)明實施例提供的技術方案將原本需要保存在所述第一緩存設備的所述第一內容對象分布緩存到多個緩存設備中的第二緩存設備,這樣,即使所述第一緩存設備在收到用戶發(fā)送的所述第一內容對象請求消息時沒有緩存所述第一內容對象,也可以有機會從所述第二緩存設備獲取所述第一內容對象,從而可以減少對位于上一級網絡的所述第一內容對象對應的源服務器的訪問,提高獲取所述第一內容對象的速度,減少占用所述上一級網絡的帶寬。
為了更清楚地說明本發(fā)明實施例的技術方案,下面將對實施例中所需要使用的附 圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖I是本發(fā)明一個實施例提供的一種分布式緩存的方法流程示意圖;圖2是本發(fā)明一個實施例提供的帶緩存設備的網絡示意圖;圖3是本發(fā)明一個實施例提供的一種分布式緩存的方法流程示意圖;圖4是本發(fā)明一個實施例提供的一種緩存設備示意圖;圖5是本發(fā)明一個實施例提供的一種緩存設備示意圖。
具體實施例方式為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。在對本發(fā)明實施例具體描述前,對本發(fā)明實施例會用到的四個名詞進行定義短期緩存,是指對內容對象進行短時間的緩存,緩存時長相對較短;長期緩存,是指對內容對象進行長時間的緩存,緩存時長相對較長;短期緩存對象,被短期緩存的內容對象認為是短期緩存對象;長期緩存對象,被長期緩存的內容對象認為是長期緩存對象。具體來說,短期緩存就是說被緩存的內容對象只能短時間的緩存,超過較短的緩存時長后所述被緩存的內容對象即被刪除,如所述較短的緩存時長為I天,被緩存的內容對象的緩存時間超過I天即被刪除;長期緩存就是說被緩存的內容對象可以長時間的緩存,只有超過較長的緩存時長后才能被刪除,如所述較長的緩存時長為30天,只有被緩存的內容對象的緩存時間超過30天,才將被緩存的內容對象刪除。短期緩存和長期緩存是相對來說的,具體短期緩存的時長和長期緩存的時長本發(fā)明實施例不做具體限制,使用者可以自行定義。參見圖1,本發(fā)明實施例提供了一種分布式緩存的方法,包括以下內容。102,第一緩存設備接收用戶發(fā)送來的第一內容對象請求消息,所述第一內容對象請求消息包含第一內容對象的標識和所述第一內容對象對應的源服務器的互聯(lián)網協(xié)議(英文全稱為Internet Protocol,英文縮寫為IP)地址,所述第一內容對象請求消息用于獲得所述第一內容對象。104,如果所述第一緩存設備沒有緩存所述第一內容對象,則根據所述第一內容對象的標識獲得第二緩存設備的地址。所述第一內容對象的標識是可以用于唯一地確定所述第一內容對象的信息,可選地,所述第一內容對象的標識可以是所述第一內容對象在被發(fā)布時所使用的統(tǒng)一資源標識符(英文全稱為Uniform Resource Identifier,英文縮寫為URI),也可以是對所述第一內容對象進行消息摘要算法第五版(英文全稱為Message Digest Algorithm 5,英文縮寫為MD5)計算后獲得的“指紋”信息,本發(fā)明實施例不做具體限制。所述第一內容對象對應的源服務器的IP地址可以為互聯(lián)網協(xié)議第四版(英文全稱為Internet Protocol Version 4,英文縮寫為IPv4)地址或互聯(lián)網協(xié)議第六版(英文全稱為Internet Protocol Version 6,英文縮寫為IPv6)地址。可選的,所述第二緩存設備的地址和所述第一緩存設備的地址可以為IPv4地址 或IPv6地址或媒體訪問控制(英文全稱為Media Access Control,英文縮寫為MAC)地址。所述第一緩存設備預先保存第一網絡中的其他緩存設備的地址。可選地,所述第一網絡可以是接入網絡中匯聚交換機(英文全稱為Aggregation Switch,英文縮寫為AGGSff)的用戶側所連接的某個虛擬局域網(英文全稱為Virtual Local Area Network,英文縮寫為VLAN),也可以是AGG SW用戶側的整個網絡??蛇x地,所述第一緩存設備可以通過預先配置將所述第一網絡中的其他緩存設備的地址保存起來,例如可以通過命令配置將所述第一網絡中的其他緩存設備的地址保存到所述第一緩存設備中??蛇x地,所述第一緩存設備預先保存的所述第一網絡中的其他緩存設備的地址,可以通過在所述第一網絡中每個緩存設備和所述AGG SW之間運行相關協(xié)議獲得,例如,當所述其他緩存設備的地址為IPv4地址時,可以通過在所述第一網絡中的緩存設備和所述AGG SW之間運行內部網關協(xié)議(英文全稱為Interior Gateway Protocol,英文縮寫為IGP)來獲得,所述IGP可以為中間系統(tǒng)到中間系統(tǒng)(英文全稱為Intermediate Systemto Intermediate System,英文縮寫為IS-IS)協(xié)議或開放式最短路徑優(yōu)先協(xié)議(英文全稱為 Open Shortest Path First Interior Gateway Protocol,英文縮寫為 0SPF)。當所述其他緩存設備的地址為IPv6地址時,可以通過在所述第一網絡中每個緩存設備和所述AGGSW之間運行開放最短路徑優(yōu)先協(xié)議版本3 (英文全稱為Open Short Path First ProtocolVersion 3,英文縮寫為0SPFv3)或邊界網關協(xié)議版本4+(英文全稱為Boarder GatewayProtocol 4+,英文縮寫為BGP4+)來獲得。當所述其他緩存設備的地址為MAC地址時,可以通過在所述第一網絡中每個緩存設備和所述AGG SW之間運行地址解析協(xié)議(英文全稱為Address Resolution Protocol,英文縮寫為ARP)協(xié)議獲得。所述其他緩存設備的地址為IPv4地址舉例來說,如圖2所示,緩存設備I、緩存設備2及緩存設備3通過AGG Sff連接骨干網,所述緩存設備I、緩存設備2及緩存設備3同屬于一個VLAN,緩存設備I、緩存設備2及緩存設備3分別連接不同的用戶,所述第一緩存設備可以為所述緩存設備I、緩存設備2及緩存設備3中任意一個,例如所述第一緩存設備為所述緩存設備I,則所述緩存設備I需要保存所述緩存設備2和緩存設備3的IPv4地址,通過所述緩存設備I、緩存設備2及緩存設備3分別與所述AGG Sff之間運行IGP協(xié)議,所述AGG Sff利用IGP協(xié)議通過所述AGG Sff與所述緩存設備I直連鏈路將所述緩存設備2和緩存設備3的IPv4地址發(fā)布給所述緩存設備I,所述緩存設備I緩存所述緩存設備2和緩存設備3的IPv4地址。如果所述第一緩存設備沒有緩存所述第一內容對象,則需要向用于緩存所述第一內容對象的所述第二緩存設備請求所述第一內容對象。首先根據所述第一內容對象的標識通過分布式哈希表(英文全稱為DistributedHash Table,英文縮寫為DHT)技術獲得第二緩存設備的地址,以便向所述第二緩存設備請求所述第一內容對象??蛇x地,一種獲得所述第二緩存設備的地址的具體過程如下。對所述第一內容對象的標識進行哈希(英文全稱為HASH)運算得到第一哈希值;根據所述第一哈希值和所述第一緩存設備中存有的第一對應關系得到第二緩存設備的地址,其中所述第一對應關系為所述第一哈希值與所述第二緩存設備的地 址的對應關系??蛇x地,通過所述第一哈希值獲得所述第二緩存設備的地址可以通過以下方式實現(xiàn)。對所述第一緩存設備保存的所述第一網絡中其他緩存設備的地址及所第一緩存設備的地址進行排序,并對排序過的緩存設備的地址進行編號,形成帶編號的緩存設備地址表,也就形成了編號和緩存設備的地址的對應關系,每個編號對應一個緩存設備的地址,假設第二編號和所述第二緩存設備對應,通過對所述第一內容對象的標識進行哈希運算得到和所述第二編號對應的所述第一哈希值,也就能通過所述第一哈希值獲得所述第二緩存設備的地址。例如,所述編號可以為O到n,其中η為所述其他緩存設備的數量,η+1則為所述第一網絡中包含所述第一緩存設備的緩存設備總數量。對所述第一內容對象的標識進行哈希運算得到的第一哈希值,可以通過對所述第一內容對象的標識利用安全散列算法(英文全稱為Secure Hash Algorithm,英文縮寫為SHA)得到一個數字,將所述數字通過對所述緩存設備的總數量η+1進行取模操作得到第一哈希值,所述第一哈希值即對應到所述編號O到η中的某個編號值,由于所述編號中的每個編號值對應一個緩存設備的地址,進一步,所述第一哈希值也就對應到了所述緩存設備地址表中某個緩存設備的地址,將所述某個緩存設備的地址作為第二緩存設備的地址。更具體來說,例如所述第一緩存設備保存了所述第一網絡中其他9個緩存設備的地址,加上所述第一緩存設備的地址,所述第一緩存設備保存了共10個緩存設備的地址,對這所述10個緩存設備的地址進行排序,可以按照地址從大到小進行排序,最大的緩存設備地址對應的編號為0,最小的緩存設備的地址對應的編號為9,排序好的緩存設備的地址分別對應到O到9中一個編號。對所述第一內容對象的標識利用SHA計算獲得一個數字,將所述獲得的數字通過對10取模運算的方式映射到所述緩存設備地址表中某一緩存設備地址,當所述獲得的數字為11時,將11對10取模運算得到的值為1,則可以認為編號為I的緩存設備地址對應的緩存設備可能長期緩存了所述第一內容對象,將編號為I的緩存設備的地址作為所述第二緩存設備的地址??蛇x地,所述第一網絡中包括所述緩存設備和所述第二緩存設備的多個緩存設備都使用相同的HASH算法并且保存有所述第一對應關系,這樣當有用戶通過所述第一網絡中所述多個緩存設備中的任一緩存設備獲取所述第一內容對象時,也都可以通過所述相同的HASH算法和所述第一對應關系得到所述第二緩存設備的地址,以便向所述第二緩存設備請求所述第一內容對象。例如,所述第一網絡中的所述多個緩存設備中包括第四緩存設備,當有用戶通過所述第四緩存設備獲取所述第一內容對象時,所述第四緩存設備通過對所述第一內容對象的標識進行哈希運算得到第一哈希值;根據所述第一哈希值和所述第四緩存設備中存有的所述第一對應關系得到所述第二緩存設備的地址,進一步可以向所述第二緩存設備請求所述第一內容對象。所述多個緩存設備是所述第一網絡中的部分或全部緩存設備??蛇x地,當所述第一緩存設備緩存了所述第一內容對象時,直接將所述第一內容對象發(fā)送給所述用戶。106,根據所述第二緩存設備的地址向所述第二緩存設備請求所述第一內容對象。108,當所述第二緩存設備沒有緩存所述第一內容對象時,根據所述第一內容對象對應的源服務器的IP地址從所述源服務器獲取所述第一內容對象。
可選地,所述第一內容對象對應的源服務器可以為骨干網中緩存所述第一內容對象的緩存設備,也可以是骨干網中存儲所述第一內容對象的服務器??蛇x地,當所述第二緩存設備緩存有所述第一內容對象時,所述第一緩存設備直接將獲取的所述第一內容對象發(fā)送給所述用戶。110,所述第一緩存設備向所述第二緩存設備發(fā)送所述第一內容對象,以便于所述 第二緩存設備緩存所述第一內容對象。所述第二緩存設備接收到所述第一緩存設備發(fā)送來的所述第一內容對象后,將所述第一內容對象緩存起來。這樣,本實施例中的方法將原本需要保存在第一緩存設備的第一內容對象保存至多個緩存設備中的某一個緩存設備,例如本實施例中的第二緩存設備。在進行這樣的操作后,即使第一緩存設備在收到用戶發(fā)送的所述第一內容對象請求消息時沒有緩存所述第一內容對象,也可以有機會從所述第二緩存設備為用戶獲取所述第一內容對象,從而可以減少對位于上一級網絡中的所述服務器的訪問,提高獲取所述第一內容對象的速度,減少占用上一級網絡的帶寬??蛇x地,即使第一緩存設備在收到用戶發(fā)送的所述第一內容對象請求消息時緩存有所述第一內容對象,所述第二緩存設備還可以擔任所述第一內容對象的備份緩存設備,以便在第一緩存設備出現(xiàn)內容讀取故障時從所述第二緩存設備獲取所述第一內容對象??蛇x地,所述第一緩存設備從所述源服務器獲得所述第一內容對象后,緩存所述第一內容對象,所述第一緩存設備緩存所述第一內容對象的時長小于所述第二緩存設備緩存所述第一內容對象的時長。所述第一緩存設備把所述第一內容對象作為短期緩存對象緩存起來,所述第二緩存設備把所述第一內容對象作為長期緩存對象緩存起來。所述第一緩存設備緩存所述第一內容對象以便于后續(xù)連接到所述第一緩存設備的用戶訪問所述第一內容對象時,不需要再到所述第一內容對象對應的源服務器或長期緩存所述第一內容對象的緩存設備獲取,直接可以將所述第一內容對象發(fā)送給所述用戶,提升了用戶訪問網絡的速度,進一步,由于不需要到內容對象對應的源服務器獲取所述第一內容對象,也減少了對骨干網帶寬的占用。具體舉例來說,例如,所述第一緩存設備緩存所述第一內容對象的時長為I天,所述第二緩存設備緩存所述第一內容對象的時長為30天,這樣實現(xiàn)的好處在于,當所述第一緩存設備連接的用戶訪問網絡頻繁時,可以將用戶訪問的所述第一內容對象分散存儲在所第二緩存設備上,所述第一緩存設備緩存的時長較短,可以盡快釋放所述第一緩存設備的Cache空間,以便于緩存其他內容對象,所述第二緩存設備緩存所述第一內容對象的時長較長,當連接所述第一緩存設備的用戶訪問所述第一內容對象時,可以通過到所述第二緩存設備獲取所述第一內容對象,這樣所述第一緩存設備和所述第二緩存設備對用戶可以體現(xiàn)為一個緩存設備,增大了緩存設備緩存的能力,提升了用戶訪問網絡的速度,并且避免了頻繁到所述第一內容對象對應的源服務器獲取所述內容對象,減少了對骨干網帶寬的占用,所述第二緩存設備緩存所述第一內容對象的時長可以為所述第一緩存設備緩存所述第一內容對象時長的2倍或2倍以上,本發(fā)明實施例不做具體限制。可選地,所述第一緩存設備接收第三緩存設備發(fā)送來的第二內容對象請求消息,所述第二內容對象請求消息包含第二內容對象的標識,所述第二內容對象請求消息用于獲得所述第二內容對象,所述第三緩存設備向所述第一緩存設備發(fā)送第二內容對象請求消息之前,通過所述第二內容對象標識獲得所述第一緩存設備的地址,具體包括所述第三緩存設備對所述第二內容對象的標識進行哈希運算得到第二哈希值;根據所述第二哈希值和所述第三緩存設備中存有的第二對應關系得到第一緩存設備的地址,其中所述第二對應關系為所述第二哈希值與第一緩存設備的地址的對應關系,所述第二對應關系的建立過程可以參見本發(fā)明實施例中所述第一對應關系的建立過 程;所述第一緩存設備向所述第三緩存設備發(fā)送響應消息,當所述第一緩存設備沒有緩存所述第二內容對象時,所述響應消息不包含所述第二內容對象,當所述第一緩存設備緩存所述第二內容對象時,所述響應消息包含所述第二內容對象。當所述第一緩存設備沒有緩存所述第二內容對象時,所述第一緩存設備接收所述第三緩存設備發(fā)送來的第二內容對象,其中所述第二內容對象為所述第三緩存設備從與所述第二內容對象對應的源服務器獲取的;所述第一緩存設備作為所述第二內容對象的長期緩存設備緩存所述第二內容對象。所述第一緩存設備、所述第二緩存設備、所述第三緩存設備和所述第四緩存設備位于接入網絡中。所述第一緩存設備、所述第二緩存設備、所述第三緩存設備和所述第四緩存設備可以為內容存儲節(jié)點或具有緩存功能的路由器或具有緩存功能的交換機或具有緩存功能的其他網絡設備。參見圖3,本發(fā)明實施例提供了另一種分布式緩存的方法,包括以下內容。302,第一緩存設備接收用戶發(fā)送來的第一內容對象請求消息,所述第一內容對象請求消息包含第一內容對象的標識,所述第一內容對象請求消息用于獲得所述第一內容對象;304,如果所述第一緩存設備沒有緩存所述第一內容對象,則根據所述第一內容對象的標識獲得第二緩存設備的地址;306,所述第一緩存設備根據所述第二緩存設備的地址向所述第二緩存設備請求所述第一內容對象;308,當所述第二緩存設備緩存有所述第一內容對象時,所述第一緩存設備接收所述第二緩存設備發(fā)送的所述第一內容對象;310,所述第一緩存設備將所述第一內容對象發(fā)送給所述用戶。所述第一內容對象的標識是可以用于唯一地確定所述第一內容對象的信息,可選地,所述第一內容對象的標識可以是所述第一內容對象在被發(fā)布時所使用的URI,也可以是對所述第一內容對象進行MD5計算后獲得的“指紋”信息,本發(fā)明實施例不做具體限制。可選的,所述第二緩存設備的地址和所述第一緩存設備的地址可以為IPv4地址或IPv6地址或MAC地址。所述第一緩存設備預先保存第一網絡中的其他緩存設備的地址??蛇x地,所述第一網絡可以是接入網絡中AGG SW的用戶側所連接的某個VLAN,也可以是AGG SW用戶側的整個網絡。可選地,所述第一緩存設備可以通過預先配置將所述第一網絡中的其他緩存設備的地址保存起來,例如可以通過命令配置將所述第一網絡中的其他緩存設備的地址保存到所述第一緩存設備中。
可選地,所述第一緩存設備預先保存的所述第一網絡中的其他緩存設備的地址,可以通過在所述第一網絡中每個緩存設備和所述AGG SW之間運行相關協(xié)議獲得,例如,當所述其他緩存設備的地址為IPv4地址時,可以通過在所述第一網絡中的緩存設備和所述AGG SW之間運行IGP來獲得,所述IGP可以為IS-IS協(xié)議或0SPF。當所述其他緩存設備的地址為IPv6地址時,可以通過在所述第一網絡中每個緩存設備和所述AGG Sff之間運行0SPFv3或BGP4來獲得。當所述其他緩存設備的地址為MAC地址時,可以通過在所述第一網絡中每個緩存設備和所述AGG SW之間運行ARP協(xié)議獲得。所述其他緩存設備的地址為IPv4地址舉例來說,如圖2所示,緩存設備I、緩存設備2及緩存設備3通過AGG Sff連接骨干網,所述緩存設備I、緩存設備2及緩存設備3同屬于一個VLAN,緩存設備I、緩存設備2及緩存設備3分別連接不同的用戶,所述第一緩存設備可以為所述緩存設備I、緩存設備2及緩存設備3中任意一個,例如所述第一緩存設備為所述緩存設備I,則所述緩存設備I需要保存所述緩存設備2和緩存設備3的IPv4地址,通過所述緩存設備I、緩存設備2及緩存設備3分別與所述AGG SW之間運行IGP協(xié)議,所述AGG SW利用IGP協(xié)議通過所述AGG Sff與所述緩存設備I直連鏈路將所述緩存設備2和緩存設備3的IPv4地址發(fā)布給所述緩存設備I,所述緩存設備I緩存所述緩存設備2和緩存設備3的IPv4地址。如果所述第一緩存設備沒有緩存所述第一內容對象,則需要向用于緩存所述第一內容對象的所述第二緩存設備請求所述第一內容對象。首先根據所述第一內容對象的標識通過DHT技術獲得第二緩存設備的地址,以便向所述第二緩存設備請求所述第一內容對象。可選地,一種獲得所述第二緩存設備的地址的具體過程如下。對所述第一內容對象的標識進行哈希運算得到第一哈希值;根據所述第一哈希值和所述第一緩存設備中存有的第一對應關系得到第二緩存設備的地址,其中所述第一對應關系為所述第一哈希值與所述第二緩存設備的地址的對應關系??蛇x地,通過所述第一哈希值獲得所述第二緩存設備的地址可以通過以下方式實現(xiàn)。對所述第一緩存設備保存的所述第一網絡中其他緩存設備的地址及所述第一緩存設備的地址進行排序,并對排序過的緩存設備的地址進行編號,形成帶編號的緩存設備地址表,也就形成了編號和緩存設備的地址的對應關系,每個編號對應一個緩存設備的地址,假設第二編號和所述第二緩存設備對應,通過對所述第一內容對象的標識進行哈希運算得到和所述第二編號對應的所述第一哈希值,也就能通過所述第一哈希值獲得所述第二緩存設備的地址。例如,所述編號可以為O到n,其中η為所述其他緩存設備的數量,η+1則為所述第一網絡中包含所述第一緩存設備的緩存設備總數量。對所述第一內容對象的標識進行哈希運算得到的第一哈希值,可以通過對所述第一內容對象的標識利用SHA得到一個數字,將所述數字通過對所述緩存設備的總數量η+1進行取模操作得到第一哈希值,所述第一哈希值即對應到所述編號O到η中的某個編號值,由于所述編號中的每個編號值對應一個緩存設備的地址,進一步,所述第一哈希值也就對應到了所述緩存設備地址表中某個緩存設備的地址,將所述某個緩存設備的地址作為第二緩存設備的地址。更具體來說,例如所述第一緩存設備保存了所述第一網絡中其他9個緩存設備的地址,加上所述第一緩存設備的地址,所述第一緩存設備保存了共10個緩存設備的地址,對這所述10個緩存設備的地址進行排序,可以按照地址從大到小進行排序,最大的緩存設備地址對應的編號為0,最小的緩存設備的地址對應的編號為9,排序好的緩存設備的地址分別對應到O到9中一個編號。對所述第一內容對象的標識利用SHA計算獲得一個數字,將所述獲得的數字通過對10取模運算的方式映射到所述緩存設備地址表中某一緩存設備地址,當所述獲得的數字為11時,將11對10取模運算得到的值為1,則可以認為編號為I的緩存設備地址對應的緩存設備可能長期緩存了所述第一內容對象,將編號為I的緩存設備的地址作為所述第二緩存設備的地址。 可選地,所述第一網絡中包括所述緩存設備和所述第二緩存設備的多個緩存設備都使用相同的HASH算法并且保存有所述第一對應關系,這樣當有用戶通過所述第一網絡中的所述多個緩存設備中的任一緩存設備獲取所述第一內容對象時,也都可以通過所述相同的HASH算法和所述第一對應關系得到所述第二緩存設備的地址,以便向所述第二緩存設備請求所述第一內容對象。例如,所述第一網絡中的所述多個緩存設備包括第四緩存設備,當有用戶通過所述第四緩存設備獲取所述第一內容對象時,所述第四緩存設備通過對所述第一內容對象的標識進行哈希運算得到第一哈希值;根據所述第一哈希值和所述第四緩存設備中存有的第一對應關系得到第二緩存設備的地址,進一步可以向所述第二緩存設備請求所述第一內容對象。所述多個緩存設備是所述第一網絡中的部分或全部緩存設備??蛇x地,當所述第一緩存設備緩存了所述第一內容對象時,直接將所述第一內容對象發(fā)送給所述用戶。所述第一緩存設備、所述第二緩存設備和所述第四緩存設備位于接入網絡中。所述第一緩存設備、所述第二緩存設備和所述第四緩存設備可以為內容存儲節(jié)點或具有緩存功能的路由器或具有緩存功能的交換機或具有緩存功能的其他網絡設備??梢?,本發(fā)明實施例提供了一種新的緩存方法,緩存設備可以通過到網絡中的其他緩存設備為用戶獲取內容對象,從而避免了頻繁到接入網絡的上一級骨干網獲取內容對象,提升了用戶獲取內容對象的速度,進一步也減少對骨干網帶寬的占用。參見圖4,本發(fā)明實施例提供了一種緩存設備,包括以下內容。所述緩存設備包括第一請求接收單元402、處理單元404、請求發(fā)送單元406、獲取單元408和內容對象發(fā)送單元410,其中所述第一請求接收單元402,用于接收用戶發(fā)送來的第一內容對象請求消息,所述第一內容對象請求消息包含第一內容對象的標識和所述第一內容對象對應的源服務器的IP地址,所述第一內容對象請求消息用于獲得所述第一內容對象;
所述處理單元404,用于在所述緩存設備沒有緩存所述第一內容對象時,根據所述第一內容對象的標識獲得第二緩存設備的地址;所述請求發(fā)送單元406,用于根據所述第二緩存設備的地址向所述第二緩存設備請求所述第一內容對象;所述獲取單元408,用于當所述第二緩存設備沒有緩存所述第一內容對象時,根據所述第一內容對象對應的源服務器的IP地址從所述源服務器獲取所述第一內容對象;所述內容對象發(fā)送單元410,用于向所述第二緩存設備發(fā)送所述第一內容對象,以便于所述第二緩存設備緩存所述第一內容對象。所述第一內容對象的標識是可以用于唯一地確定所述第一內容對象的信息,可選地,所述第一內容對象的標識可以是所述第一內容對象在被發(fā)布時所使用的URI,也可以是對所述第一內容對象進行MD5計算后獲得的“指紋”信息,本發(fā)明實施例不做具體限制。所述第一內容對象對應的源服務器的IP地址可以為IPv4地址或IPv6地址。 可選的,所述第二緩存設備的地址和所述緩存設備的地址可以為IPv4地址或IPv6地址或MAC地址。需要說明的是,在本實施例中,“所述緩存設備”是指包括第一請求接收單元402、處理單元404、請求發(fā)送單元406、獲取單元408和內容對象發(fā)送單元410的緩存設備,而不是指“第二緩存設備”。所述緩存設備預先保存第一網絡中的其他緩存設備的地址??蛇x地,所述第一網絡可以是AGG Sff的用戶側所連接的某個VLAN,也可以是AGGSW用戶側的整個網絡??蛇x地,所述緩存設備可以通過預先配置將所述第一網絡中的其他緩存設備的地址保存起來,例如可以通過命令配置將所述第一網絡中的其他緩存設備的地址保存到所述緩存設備中。可選地,所述緩存設備預先保存的所述第一網絡中的其他緩存設備的地址,可以通過在所述第一網絡中每個緩存設備和所述AGG SW之間運行相關協(xié)議獲得,例如,當所述其他緩存設備的地址為IPv4地址時,可以通過在所述第一網絡中的緩存設備和所述AGGSW之間運行IGP來獲得,所述IGP可以為IS-IS協(xié)議或0SPF。當所述其他緩存設備的地址為IPv6地址時,可以通過在所述第一網絡中每個緩存設備和所述AGG Sff之間運行0SPFv3或BGP4+來獲得。當所述其他緩存設備的地址為MAC地址時,可以通過在所述第一網絡中每個緩存設備和所述AGG SW之間運行ARP協(xié)議獲得。所述其他緩存設備的地址為IPv4地址舉例來說,如圖2所示,緩存設備I、緩存設備2及緩存設備3通過AGG Sff連接骨干網,所述緩存設備I、緩存設備2及緩存設備3同屬于一個VLAN,緩存設備I、緩存設備2及緩存設備3分別連接不同的用戶,所述緩存設備可以為所述緩存設備I、緩存設備2及緩存設備3中任意一個,例如所述緩存設備為所述緩存設備1,則所述緩存設備I需要保存所述緩存設備2和緩存設備3的IPv4地址,通過所述緩存設備I、緩存設備2及緩存設備3分別與所述AGG Sff之間運行IGP協(xié)議,所述AGG Sff利用IGP協(xié)議通過所述AGG Sff與所述緩存設備I直連鏈路將所述緩存設備2和緩存設備3的IPv4地址發(fā)布給所述緩存設備I,所述緩存設備I緩存所述緩存設備2和緩存設備3的IPv4地址。如果所述緩存設備沒有緩存所述第一內容對象,所述請求發(fā)送單元406需要向用于緩存所述第一內容對象的所述第二緩存設備請求所述第一內容對象。
首先所述處理單元404根據所述第一內容對象的標識通過DHT技術獲得第二緩存設備的地址,以便向所述第二緩存設備請求所述第一內容對象。可選地,一種獲得所述第二緩存設備的地址的具體過程如下。對所述第一內容對象的標識進行哈希運算得到第一哈希值;根據所述第一哈希值和所述緩存設備中存有的第一對應關系得到第二緩存設備的地址,其中所述第一對應關系為所述第一哈希值與所述第二緩存設備的地址的對應關系??蛇x地,通過所述第一哈希值獲得所述第二緩存設備的地址可以通過以下方式實現(xiàn)。對所述緩存設備保存的所述第一網絡中其他緩存設備的地址及所緩存設備的地址進行排序,并對排序過的緩存設備的地址進行編號,形成帶編號的緩存設備地址表,也就形成了編號和緩存設備的地址的對應關系,每個編號對應一個緩存設備的地址,假設第二編號和所述第二緩存設備對應,通過對所述第一內容對象的標識進行哈希運算得到和所述第二編號對應的所述第一哈希值,也就能通過所述第一哈希值獲得所述第二緩存設備的地址。例如,所述編號可以為O到n,其中η為所述其他緩存設備的數量,η+1則 為所述第一網絡中包含所述緩存設備的緩存設備總數量。對所述第一內容對象的標識進行哈希運算得到的第一哈希值,可以通過對所述第一內容對象的標識利用SHA得到一個數字,將所述數字通過對所述緩存設備的總數量η+1進行取模操作得到第一哈希值,所述第一哈希值即對應到所述編號O到η中的某個編號值,由于所述編號中的每個編號值對應一個緩存設備的地址,進一步,所述第一哈希值也就對應到了所述緩存設備地址表中某個緩存設備的地址,將所述某個緩存設備的地址作為第二緩存設備的地址。更具體來說,例如所述緩存設備保存了所述第一網絡中其他9個緩存設備的地址,加上所述緩存設備的地址,所述緩存設備保存了共10個緩存設備的地址,對這所述10個緩存設備的地址進行排序,可以按照地址從大到小進行排序,最大的緩存設備地址對應的編號為0,最小的緩存設備的地址對應的編號為9,排序好的緩存設備的地址分別對應到O到9中一個編號。對所述第一內容對象的標識利用SHA計算獲得一個數字,將所述獲得的數字通過對10取模運算的方式映射到所述緩存設備地址表中某一緩存設備地址,當所述獲得的數字為11時,將11對10取模運算得到的值為1,則可以認為編號為I的緩存設備地址對應的緩存設備可能長期緩存了所述第一內容對象,將編號為I的緩存設備的地址作為所述第二緩存設備的地址??蛇x地,所述第一網絡中的包括所述緩存設備和所述第二緩存設備的多個緩存設備都使用相同的HASH算法并且保存有所述第一對應關系,這樣當有用戶通過所述第一網絡中所述多個緩存設備中的任一緩存設備獲取所述第一內容對象時,也都可以通過所述相同的HASH算法和所述第一對應關系得到所述第二緩存設備的地址,以便向所述第二緩存設備請求所述第一內容對象。例如,所述第一網絡中的所述多個緩存設備包括第四緩存設備,當有用戶通過所述第四緩存設備獲取所述第一內容對象時,所述第四緩存設備通過對所述第一內容對象的標識進行哈希運算得到第一哈希值;根據所述第一哈希值和所述第四緩存設備中存有的第一對應關系得到第二緩存設備的地址,進一步可以向所述第二緩存設備請求所述第一內容對象。所述多個緩存設備是所述第一網絡中的部分或全部緩存設備。所述第二緩存設備接收到所述內容對象發(fā)送單元410發(fā)送來的所述第一內容對象后,將所述第一內容對象緩存起來。這樣,將原本需要保存在所述緩存設備的第一內容對象保存至多個緩存設備中的某一個緩存設備,例如本實施例中的第二緩存設備。在進行這樣的操作后,即使所述緩存設備在收到用戶發(fā)送的所述第一內容對象請求消息時沒有緩存所述第一內容對象,也可以有機會從所述第二緩存設備為用戶獲取所述第一內容對象,從而可以減少對位于上一級網絡中的所述服務器的訪問,提高獲取所述第一內容對象的速度,減少占用上一級網絡的帶寬。可選地,即使第一緩存設備在收到用戶發(fā)送的所述第一內容對象請求消息時緩存有所述第一內容對象,所述第二緩存設備還可以擔任所述第一內容對象的備份緩存設備,以便在第一緩存設備出現(xiàn)內容讀取故障時從所述第二緩存設備獲取所述第一內容對象??蛇x地,所述緩存設備還包括緩存單元,用于當所述獲取單元408根據所述第一內容對象標識從所述第一內容對象對應的源服務器獲取所述第一內容對象之后,緩存所述第一內容對象,緩存所述第一內容對象的時長小于所述第二緩存設備緩存所述第一內容對象的時長。所述緩存設備把所述第一內容對象作為短期緩存對象緩存起來,所述第二緩存 設備把所述第一內容對象作為長期緩存對象緩存起來。所述緩存設備的緩存單元緩存所述第一內容對象以便于后續(xù)連接到所述緩存設備的用戶訪問所述第一內容對象時,不需要再到所述第一內容對象對應的源服務器或長期緩存所述第一內容對象的緩存設備獲取,直接可以將所述第一內容對象發(fā)送給所述用戶,提升了用戶訪問網絡的速度,進一步,由于不需要到內容對象對應的源服務器獲取所述第一內容對象,也減少了對骨干網帶寬的占用。具體舉例來說,例如,所述緩存單元緩存所述第一內容對象的時長為I天,所述第二緩存設備緩存所述第一內容對象的時長為30天,這樣實現(xiàn)的好處在于,當所述緩存設備連接的用戶訪問網絡頻繁時,可以將用戶訪問的所述第一內容對象分散存儲在所第二緩存設備上,所述緩存設備緩存的時長較短,可以盡快釋放所述緩存設備的Cache空間,以便于緩存其他內容對象,所述第二緩存設備緩存所述第一內容對象的時長較長,當連接所述緩存設備的用戶訪問所述第一內容對象時,可以通過到所述第二緩存設備獲取所述第一內容對象,這樣所述緩存設備和所述第二緩存設備對用戶可以體現(xiàn)為一個緩存設備,增大了緩存設備緩存的能力,提升了用戶訪問網絡的速度,并且避免了頻繁到所述第一內容對象對應的源服務器獲取所述內容對象,減少了對骨干網帶寬的占用,所述第二緩存設備緩存所述第一內容對象的時長可以為所述緩存設備緩存所述第一內容對象時長的2倍或2倍以上,本發(fā)明實施例不做具體限制??蛇x地,所述緩存設備包括第二請求接收單元和響應發(fā)送單元,其中所述第二請求接收單元,用于接收第三緩存設備發(fā)送來的第二內容對象請求消息,所述第二內容對象請求消息包含第二內容對象的標識,所述第二內容對象請求消息用于獲得所述第二內容對象,所述第三緩存設備向所述緩存設備發(fā)送第二內容對象請求消息之前,通過所述第二內容對象標識獲得所述緩存設備的地址,具體包括所述第三緩存設備對所述第二內容對象的標識進行哈希運算得到第二哈希值;根據所述第二哈希值和所述第三緩存設備中存有的第二對應關系得到所述緩存設備的地址,其中所述第二對應關系為所述第二哈希值與所述緩存設備的地址的對應關系;所述響應發(fā)送單元,用于向所述第三緩存設備發(fā)送響應消息,當所述緩存設備沒有緩存所述第二內容對象時,所述響應消息不包含所述第二內容對象,當所述緩存設備緩存所述第二內容對象時,所述響應消息包含所述第二內容對象。
進一步,所述緩存設備還可以包括內容對象接收單元,用于當所述緩存單元沒有緩存所述第二內容對象時,接收所述第三緩存設備發(fā)送來的第二內容對象,其中所述第二內容對象為所述第三緩存設備從與所述第二內容對象對應的源服務器獲取的;相應地,所述緩存單元還用于緩存所述第二內容對象??蛇x地,當所述第二緩存設備緩存有所述第一內容對象時,所述第一緩存設備直接將獲取的所述第一內容對象發(fā)送給所述用戶。可選地,所述第一內容對象對應的源服務器可以為骨干網中緩存所述第一內容對象的緩存設備,也可以是骨干網中存儲所述第一內容對象的服務器??蛇x地,本發(fā)明實施例提供的上述單元可以合并為一個或者多個。可選地,在實現(xiàn)時,所述第一請求接收單元402、所述請求發(fā)送單元406、所述內容對象發(fā)送單元410、所述 第二請求接收單元和所述響應發(fā)送單元由一個或多個物理接口實現(xiàn),所述處理單元404可以為處理器,所述緩存單元可以為Cache。所述一個或多個物理接口、處理器和Cache協(xié)同工作,使所述緩存設備完成了本實施例中執(zhí)行的操作。可選地,所述第一內容對象對應的源服務器可以為骨干網中緩存所述第一內容對象的存儲設備,也可以是骨干網中存儲所述第一內容對象的服務器。所述緩存設備和所述第二緩存設備可以為內容存儲節(jié)點或具有緩存功能的路由器或具有緩存功能的交換機或具有緩存功能的其他網絡設備。可選地,所述緩存設備可以是本發(fā)明實施例提供的一種分布式緩存的方法中的所述第一緩存設備。參見圖5,本發(fā)明實施例提供了一種緩存設備,包括以下內容。所述緩存設備包括第一請求接收單元502、處理單元504、請求發(fā)送單元506、內容對象接收單元508和內容對象發(fā)送單元510,其中所述第一請求接收單元502,用于接收用戶發(fā)送來的第一內容對象請求消息,所述第一內容對象請求消息包含第一內容對象的標識,所述第一內容對象請求消息用于獲得所述第一內容對象;所述處理單元504,用于當所述緩存設備沒有緩存所述第一內容對象時,則根據所述第一內容對象的標識獲得第二緩存設備的地址;所述請求發(fā)送單元506,用于根據所述第二緩存設備的地址向所述第二緩存設備請求所述第一內容對象;所述請求接收單元508,用于當所述第二緩存設備緩存有所述第一內容對象時,接收所述第二緩存設備發(fā)送的所述第一內容對象;所述內容對象發(fā)送單元510,用于將所述第一內容對象發(fā)送給所述用戶。所述第一內容對象的標識是可以用于唯一地確定所述第一內容對象的信息,可選地,所述第一內容對象的標識可以是所述第一內容對象在被發(fā)布時所使用的URI,也可以是對所述第一內容對象進行MD5計算后獲得的“指紋”信息,本發(fā)明實施例不做具體限制。可選的,所述第二緩存設備的地址和所述緩存設備的地址可以為IPv4地址或IPv6地址或MAC地址。所述緩存設備預先保存第一網絡中的其他緩存設備的地址??蛇x地,所述第一網絡可以是AGG SW的用戶側所連接的某個VLAN,也可以是AGG SW用戶側的整個網絡??蛇x地,所述緩存設備可以通過預先配置將所述第一網絡中的其他緩存設備的地址保存起來,例如可以通過命令配置將所述第一網絡中的其他緩存設備的地址保存到所述緩存設備中??蛇x地,所述緩存設備預先保存的所述第一網絡中的其他緩存設備的地址,可以通過在所述第一網絡中每個緩存設備和所述AGG Sff之間運行相關協(xié)議獲得,例如,當所述其他緩存設備的地址為IPv4地址時,可以通過在所述第一網絡中的緩存設備和所述AGGSW之間運行IGP來獲得,所述IGP可以為IS-IS協(xié)議或0SPF。當所述其他緩存設備的地址為IPv6地址時,可以通過在所述第一網絡中每個緩存設備和所述AGG Sff之間運行0SPFv3或BGP4+來獲得。當所述其他緩存設備的地址為MAC地址時,可以通過在所述第一網絡中每個緩存設備和所述AGG SW之間運行ARP協(xié)議獲得。所述其他緩存設備的地址為IPv4地址舉例來說,如圖2所示,緩存設備I、緩存設備2及緩存設備3通過AGG SW連接骨干網,所述緩存設備I、緩存設備2及緩存設備3同屬于一個VLAN,緩存設備I、緩存設備2及緩存設 備3分別連接不同的用戶,所述緩存設備可以為所述緩存設備I、緩存設備2及緩存設備3中任意一個,例如所述緩存設備為所述緩存設備I,則所述緩存設備I需要保存所述緩存設備2和緩存設備3的IPv4地址,通過所述緩存設備I、緩存設備2及緩存設備3分別與所述AGG SW之間運行IGP協(xié)議,所述AGG SW利用IGP協(xié)議通過所述AGG SW與所述緩存設備I直連鏈路將所述緩存設備2和緩存設備3的IPv4地址發(fā)布給所述緩存設備I,所述緩存設備I緩存所述緩存設備2和緩存設備3的IPv4地址。如果所述緩存設備沒有緩存所述第一內容對象,則所述請求發(fā)送單元506需要向用于緩存所述第一內容對象的所述第二緩存設備請求所述第一內容對象。首先所述處理單元504根據所述第一內容對象的標識通過DHT技術獲得第二緩存設備的地址,以便向所述第二緩存設備請求所述第一內容對象。可選地,一種獲得所述第二緩存設備的地址的具體過程如下。對所述第一內容對象的標識進行哈希運算得到第一哈希值;根據所述第一哈希值和所述緩存設備中存有的第一對應關系得到第二緩存設備的地址,其中所述第一對應關系為所述第一哈希值與所述第二緩存設備的地址的對應關系??蛇x地,通過所述第一哈希值獲得所述第二緩存設備的地址可以通過以下方式實現(xiàn)。對所述緩存設備保存的所述第一網絡中其他緩存設備的地址及所述緩存設備的地址進行排序,并對排序過的緩存設備的地址進行編號,形成帶編號的緩存設備地址表,也就形成了編號和緩存設備的地址的對應關系,每個編號對應一個緩存設備的地址,假設第二編號和所述第二緩存設備對應,通過對所述第一內容對象的標識進行哈希運算得到和所述第二編號對應的所述第一哈希值,也就能通過所述第一哈希值獲得所述第二緩存設備的地址。例如,所述編號可以為O到n,其中η為所述其他緩存設備的數量,η+1則為所述第一網絡中包含所述緩存設備的緩存設備總數量。對所述第一內容對象的標識進行哈希運算得到的第一哈希值,可以通過對所述第一內容對象的標識利用SHA得到一個數字,將所述數字通過對所述緩存設備的總數量η+1進行取模操作得到第一哈希值,所述第一哈希值即對應到所述編號O到η中的某個編號值,由于所述編號中的每個編號值對應一個緩存設備的地址,進一步,所述第一哈希值也就對應到了所述緩存設備地址表中某個緩存設備的地址,將所述某個緩存設備的地址作為第二緩存設備的地址。更具體來說,例如所述緩存設備保存了所述第一網絡中其他9個緩存設備的地址,加上所述緩存設備的地址,所述緩存設備保存了共10個緩存設備的地址,對這所述10個緩存設備的地址進行排序,可以按照地址從大到小進行排序,最大的緩存設備地址對應的編號為0,最小的緩存設備的地址對應的編號為9,排序好的緩存設備的地址分別對應到O到9中一個編號。對所述第一內容對象的標識利用SHA計算獲得一個數字,將所述獲得的數字通過對10取模運算的方式映射到所述緩存設備地址表中某一緩存設備地址,當所述獲得的數字為11時,將11對10取模運算得到的值為1,則可以認為編號為I的緩存設備地址對應的緩存設備可能長期緩存了所述第一內容對象,將編號為I的緩存設備的地址作為所述第二緩存設備的地址??蛇x地,所述第一網絡中包括所述緩存設備和所述第二緩存設備的多個緩存設備都使用相同的HASH算法并且保存有所述第一對應關系,這樣當有用戶通過所述第一網絡中的所述多個緩存設備中任一緩存設備獲取所述第一內容對象時,也都可以通過所述相同的HASH算法和所述第一對應關系得到所述第二緩存設備,以便向所述第二緩存設備請求所述第一內容對象。例如,所述多個緩存設備中包括第四緩存設備,當有用戶通過所述第四緩存設備獲取所述第一內容對象時,所述第四緩存設備通過對所述第一內容對象的標識進 行哈希運算得到第一哈希值;根據所述第一哈希值和所述第四緩存設備中存有的第一對應關系得到第二緩存設備的地址,進一步可以向所述第二緩存設備請求所述第一內容對象。所述多個緩存設備是所述第一網絡中的部分或全部緩存設備??蛇x地,當所述第一緩存設備緩存了所述第一內容對象時,直接將所述第一內容對象發(fā)送給所述用戶。所述第一緩存設備、所述第二緩存設備和所述第四緩存設備位于接入網絡中。所述緩存設備、所述第二緩存設備和所述第四緩存設備可以為內容存儲節(jié)點或具有緩存功能的路由器或具有緩存功能的交換機或具有緩存功能的其他網絡設備??蛇x地,本發(fā)明實施例提供的上述單元可以合并為一個或者多個。可選地,在實現(xiàn)時,所述第一請求接收單元502、所述請求發(fā)送單元506、所述內容對象接收單元508和所述內容對象發(fā)送單元510由一個或多個物理接口實現(xiàn),所述處理單元504可以為處理器。所述一個或多個物理接口和處理器使所述緩存設備完成了本實施例中執(zhí)行的操作??蛇x地,當所述緩存設備緩存了所述第一內容對象時,所述內容對象發(fā)送單元510直接將所述第一內容對象發(fā)送給所述用戶。可選地,所述緩存設備可以是本發(fā)明實施例提供的另一種分布式緩存的方法中的所述第一緩存設備??梢?,本發(fā)明實施例提供了一種新的緩存設備,所述緩存設備可以通過到網絡中的其他緩存設備為用戶獲取內容對象,從而避免了頻繁到接入網絡的上一級骨干網獲取內容對象,提升了用戶獲取內容對象的速度,進一步也減少對骨干網帶寬的占用。 本發(fā)明實施例中提到的第一緩存設備、第一內容對象請求消息、第一內容對象中的“第一”只是用來做名字標識,并不代表順序上的第一;第二緩存設備、第二內容對象、第二編號和第二內容對象請求消息中的“第二”也只是用來做名字標識,并不代表順序上的第二 ;第三緩存設備中的“第三”只是用來做名字標識,并不代表順序上的第三;第四緩存設備中的“第四”只是用來做名字標識,并不代表順序上的第四。
本領域普通技術人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述程序可以存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。最后應說明的是以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解其依然 可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的范圍。
權利要求
1.ー種分布式緩存的方法,其特征在于,包括 第一緩存設備接收用戶發(fā)送來的第一內容對象請求消息,所述第一內容對象請求消息包含第一內容對象的標識和所述第一內容對象對應的源服務器的互聯(lián)網協(xié)議IP地址,所述第一內容對象請求消息用于獲得所述第一內容對象; 如果所述第一緩存設備沒有緩存所述第一內容對象,則根據所述第一內容對象的標識獲得第二緩存設備的地址; 根據所述第二緩存設備的地址向所述第 二緩存設備請求所述第一內容對象; 當所述第二緩存設備沒有緩存所述第一內容對象時,根據所述第一內容對象對應的源服務器的IP地址從所述源服務器獲取所述第一內容對象; 所述第一緩存設備向所述第二緩存設備發(fā)送所述第一內容對象,以便于所述第二緩存設備緩存所述第一內容対象。
2.根據權利要求I所述的方法,其特征在于,所述根據所述第一內容對象對應的源服務器的IP地址從所述源服務器獲取所述第一內容對象之后,進ー步包括 所述第一緩存設備緩存所述第一內容對象; 所述第一緩存設備緩存所述第一內容對象的時長小于所述第二緩存設備緩存所述第一內容對象的時長。
3.根據權利要求I或2所述方法,其特征在于,所述根據所述第一內容對象的標識獲得第二緩存設備的地址包括 對所述第一內容對象的標識進行哈希HASH運算得到第一哈希值; 根據所述第一哈希值和所述第一緩存設備中存有的第一對應關系得到第二緩存設備的地址,其中所述第一對應關系為所述第一哈希值與所述第二緩存設備的地址的對應關系O
4.根據權利要求I至3任ー權利要求所述的方法,其特征在于,所述第一緩存設備和所述第二緩存設備位于接入網絡中。
5.根據權利要求I至4任ー權利要求所述的方法,其特征在干,進ー步包括 所述第一緩存設備接收第三緩存設備發(fā)送來的第二內容對象請求消息,所述第二內容對象請求消息包含第二內容對象的標識,所述第二內容對象請求消息用于獲得所述第二內容對象,所述第三緩存設備向所述第一緩存設備發(fā)送第二內容對象請求消息之前,通過所述第二內容對象標識獲得所述第一緩存設備的地址,具體包括 所述第三緩存設備對所述第二內容對象的標識進行哈希運算得到第二哈希值; 根據所述第二哈希值和所述第三緩存設備中存有的第二對應關系得到第一緩存設備的地址,其中所述第二對應關系為所述第二哈希值與第一緩存設備的地址的對應關系;所述第一緩存設備向所述第三緩存設備發(fā)送響應消息,當所述第一緩存設備沒有緩存所述第二內容對象時,所述響應消息不包含所述第二內容對象,當所述第一緩存設備緩存所述第二內容對象時,所述響應消息包含所述第二內容對象。
6.根據權利要求5所述的方法,其特征在干,進ー步包括 當所述第一緩存設備沒有緩存所述第二內容對象時,所述第一緩存設備接收所述第三緩存設備發(fā)送來的第二內容對象,其中所述第二內容對象為所述第三緩存設備從與所述第ニ內容對象對應的源服務器獲取的;所述第一緩存設備緩存所述第二內容對象。
7.—種分布式緩存的方法,其特征在于,包括 第一緩存設備接收用戶發(fā)送來的第一內容對象請求消息,所述第一內容對象請求消息包含第一內容對象的標識,所述第一內容對象請求消息用于獲得所述第一內容對象; 如果所述第一緩存設備沒有緩存所述第一內容對象,則根據所述第一內容對象的標識獲得第二緩存設備的地址; 所述第一緩存設備根據所述第二緩存設備的地址向所述第二緩存設備請求所述第一內容對象; 當所述第二緩存設備緩存有所述第一內容對象時,所述第一緩存設備接收所述第二緩存設備發(fā)送的所述第一內容對象; 所述第一緩存設備將所述第一內容對象發(fā)送給所述用戶。
8.根據權利要求7所述方法,其特征在于,所述根據所述第一內容對象的標識獲得第ニ緩存設備的地址包括 對所述第一內容對象的標識進行哈希HASH運算得到第一哈希值; 根據所述第一哈希值和所述第一緩存設備中存有的第一對應關系得到第二緩存設備的地址,其中所述第一對應關系為所述第一哈希值與第二緩存設備的地址的對應關系。
9.根據權利要求7至8任ー權利要求所述的方法,其特征在于,所述第一緩存設備和所述第二緩存設備位于接入網絡中。
10.ー種緩存設備,其特征在于,所述緩存設備包括第一請求接收單元、處理單元、請求發(fā)送單元、獲取單元和內容對象發(fā)送単元,其中 所述第一請求接收單元,用于接收用戶發(fā)送來的第一內容對象請求消息,所述第一內容對象請求消息包含第一內容對象的標識和所述第一內容對象對應的源服務器的互聯(lián)網協(xié)議IP地址,所述第一內容對象請求消息用于獲得所述第一內容對象; 所述處理単元,用于在所述緩存設備沒有緩存所述第一內容對象時,根據所述第一內容對象的標識獲得第二緩存設備的地址; 所述請求發(fā)送單元,用于根據所述第二緩存設備的地址向所述第二緩存設備請求所述第一內容對象; 所述獲取単元,用于當所述第二緩存設備沒有緩存所述第一內容對象時,根據所述第一內容對象對應的源服務器的IP地址從所述源服務器獲取所述第一內容對象; 所述內容對象發(fā)送単元,用于向所述第二緩存設備發(fā)送所述第一內容對象,以便于所述第二緩存設備緩存所述第一內容對象。
11.根據權利要求10所述的緩存設備,其特征在干,進ー步包括 緩存單元,用于當所述獲取単元根據所述第一內容對象標識從所述第一內容對象對應的源服務器獲取所述第一內容對象之后,緩存所述第一內容對象,緩存所述第一內容對象的時長小于所述第二緩存設備緩存所述第一內容對象的時長。
12.根據權利要求10或11所述的緩存設備,其特征在于,所述處理単元根據所述第一內容對象的標識獲得第二緩存設備的地址包括 對所述第一內容對象的標識進行哈希HASH運算得到第一哈希值; 根據所述第一哈希值和所述緩存設備中存有的第一對應關系得到第二緩存設備的地址,其中所述第一對應關系為所述第一哈希值與所述第二緩存設備的地址的對應關系。
13.根據權利要求10至12任ー權利要求所述的緩存設備,其特征在于,所述緩存設備和所述第二緩存設備位于接入網絡中。
14.根據權利要求11至13任ー權利要求所述的緩存設備,其特征在于,進一歩,包括第ニ請求接收單元和響應發(fā)送單元,其中 所述第二請求接收單元,用于接收第三緩存設備發(fā)送來的第二內容對象請求消息,所述第二內容對象請求消息包含第二內容對象的標識,所述第二內容對象請求消息用于獲得所述第二內容對象,所述第三緩存設備向所述緩存設備發(fā)送第二內容對象請求消息之前,通過所述第二內容對象標識獲得所述緩存設備的地址,具體包括所述第三緩存設備對所述第二內容對象的標識進行哈希運算得到第二哈希值; 根據所述第二哈希值和所述第三緩存設備中存有的第二對應關系得到所述緩存設備的地址,其中所述第二對應關系為所述第二哈希值與所述緩存設備的地址的對應關系; 所述響應發(fā)送單元,用于向所述第三緩存設備發(fā)送響應消息,當所述緩存設備沒有緩存所述第二內容對象時,所述響應消息不包含所述第二內容對象,當所述緩存設備緩存所述第二內容對象時,所述響應消息包含所述第二內容対象。
15.根據權利要求14所述的緩存設備,其特征在于,所述緩存設備進一歩包括 內容對象接收單元,用于當所述緩存単元沒有緩存所述第二內容對象時,接收所述第三緩存設備發(fā)送來的第二內容對象,其中所述第二內容對象為所述第三緩存設備從與所述第二內容對象對應的源服務器獲取的; 相應地,所述緩存單元還用于緩存所述第二內容對象。
16.ー種緩存設備,其特征在于,所述緩存設備包括第一請求接收單元、處理單元、請求發(fā)送單元、內容對象接收單元和內容對象發(fā)送單元,其中 所述第一請求接收單元,用于接收用戶發(fā)送來的第一內容對象請求消息,所述第一內容對象請求消息包含第一內容對象的標識,所述第一內容對象請求消息用于獲得所述第一內容對象; 所述處理単元,用于當所述緩存設備沒有緩存所述第一內容對象時,則根據所述第一內容對象的標識獲得第二緩存設備的地址; 所述請求發(fā)送單元,用于根據所述第二緩存設備的地址向所述第二緩存設備請求所述第一內容對象; 所述請求接收單元,用于當所述第二緩存設備緩存有所述第一內容對象時,接收所述第二緩存設備發(fā)送的所述第一內容對象; 所述內容對象發(fā)送單元,用于將所述第一內容對象發(fā)送給所述用戶。
17.根據權利要求16所述的緩存設備,其特征在于,所述處理単元根據所述第一內容對象的標識獲得第二緩存設備的地址包括 對所述第一內容對象的標識進行哈希HASH運算得到第一哈希值; 根據所述第一哈希值和所述緩存設備中存有的第一對應關系得到第二緩存設備的地址,其中所述第一對應關系為所述第一哈希值與所述第二緩存設備的地址的對應關系。
18.根據權利要求16或17所述緩存設備,其特征在于,所述緩存設備和所述第二緩存設備位于接入網絡中。
全文摘要
本發(fā)明實施例提供分布式緩存的方法,該方法包括第一緩存設備接收用戶發(fā)送來的第一內容對象請求消息,如果所述第一緩存設備沒有緩存所述第一內容對象,則根據所述第一內容對象的標識獲得第二緩存設備的地址;根據所述第二緩存設備的地址向所述第二緩存設備請求所述第一內容對象;當所述第二緩存設備沒有緩存所述第一內容對象時,根據所述第一內容對象對應的源服務器的IP地址從所述源服務器獲取所述第一內容對象;所述第一緩存設備向所述第二緩存設備發(fā)送所述第一內容對象。本發(fā)明實施例還提供了緩存設備,通過本發(fā)明實施例提供的技術方案,在接入網絡中能夠提高緩存設備利用率,并且減少對骨干網帶寬的占用。
文檔編號H04L29/08GK102857547SQ20121010673
公開日2013年1月2日 申請日期2012年4月12日 優(yōu)先權日2012年4月12日
發(fā)明者于德雷, 周天然 申請人:華為技術有限公司