CN102857547B - 分布式缓存的方法及设备 - Google Patents

分布式缓存的方法及设备 Download PDF

Info

Publication number
CN102857547B
CN102857547B CN201210106735.3A CN201210106735A CN102857547B CN 102857547 B CN102857547 B CN 102857547B CN 201210106735 A CN201210106735 A CN 201210106735A CN 102857547 B CN102857547 B CN 102857547B
Authority
CN
China
Prior art keywords
buffer memory
memory device
content object
address
mark
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210106735.3A
Other languages
English (en)
Other versions
CN102857547A (zh
Inventor
于德雷
周天然
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Shangge Intellectual Property Service Co ltd
Suzhou Qibang Power Information Technology Co.,Ltd.
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201210106735.3A priority Critical patent/CN102857547B/zh
Publication of CN102857547A publication Critical patent/CN102857547A/zh
Application granted granted Critical
Publication of CN102857547B publication Critical patent/CN102857547B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明实施例提供分布式缓存的方法,该方法包括:第一缓存设备接收用户发送来的第一内容对象请求消息,如果所述第一缓存设备没有缓存所述第一内容对象,则根据所述第一内容对象的标识获得第二缓存设备的地址;根据所述第二缓存设备的地址向所述第二缓存设备请求所述第一内容对象;当所述第二缓存设备没有缓存所述第一内容对象时,根据所述第一内容对象对应的源服务器的IP地址从所述源服务器获取所述第一内容对象;所述第一缓存设备向所述第二缓存设备发送所述第一内容对象。本发明实施例还提供了缓存设备,通过本发明实施例提供的技术方案,在接入网络中能够提高缓存设备利用率,并且减少对骨干网带宽的占用。

Description

分布式缓存的方法及设备
技术领域
本发明实施例涉及通信技术领域,尤其涉及分布式缓存的方法及设备。
背景技术
随着互联网技术的不断普及,互联网上传输的数据量出现了爆发式的增长。一方面,由于人们的上网需求从原来的网页浏览、电子邮件等数据量小、实时性低的应用转向对带宽要求很高的高清视频和图片。另一方面,由于终端设备的丰富,人们可以随时随地的通过各种接入方式访问网络资源。传统的内容对象获取方式使得众多客户端同时向内容对象对应的服务器建立会话,造成服务器不堪重负,网络负载不均,局部网络拥塞不堪,为了解决上述问题,需要不断的升级网络设备扩大网络容量,从而增加了网络的投资成本,上述内容对象包含但不限于视频、图片、文件、软件包等。
缓存技术是将用户访问或下载的内容对象在缓存设备中缓存一个副本,当内容对象再次被用户访问或下载的时候,不必连接到内容对象对应的源服务器,而直接由缓存了内容对象副本的缓存设备提供,从而加速内容对象的访问和下载,并降低对缓存设备的上一级网络带宽占用,如缓存设备在接入网络,则会降低对接入网络的上一级骨干网的带宽占用。通过缓存设备可以实现一次外网访问,多次内网服务的目的。在对现有技术的研究和实践过程中,本发明的发明人发现,在接入网络中受成本和设备空间的影响,接入网络中每个缓存设备的高速缓冲存储器(Cache)容量都很小,如果接入网络中有多个缓存设备,每个缓存设备分别连接多个不同的用户,当这些用户访问网络的频率和业务量出现较大差别时,连接的用户访问网络比较频繁的缓存设备经常出现缓存设备的Cache被占满的情况,当有用户继续通过Cache被占满的缓存设备来访问网络时,该缓存设备将不会再有缓存的能力,如果这些用户访问的内容对象之前没有被该缓存设备缓存过,将不会再被该缓存设备缓存,下次有用户要访问这个内容对象,则只能直接到该内容对象对应的源服务器获取数据,这样这些用户获取该内容对象的速度将受到影响,而且还增加了对接入网络的上一级骨干网带宽的占用。
发明内容
本发明实施例提供了分布式缓存的方法及设备,解决在接入网络中由于缓存设备的Cache容量小,当连接缓存设备的用户访问网络频繁时出现缓存设备Cache被占满后频繁到内容对象对应的源服务器获取内容对象时,导致的用户获取内容对象速度慢,增加对骨干网带宽占用的问题。
根据本发明实施例的一个方面,提供一种分布式缓存的方法,包括:
第一缓存设备接收用户发送来的第一内容对象请求消息,所述第一内容对象请求消息包含第一内容对象的标识和所述第一内容对象对应的源服务器的互联网协议IP地址,所述第一内容对象请求消息用于获得所述第一内容对象;
如果所述第一缓存设备没有缓存所述第一内容对象,则根据所述第一内容对象的标识获得第二缓存设备的地址;
根据所述第二缓存设备的地址向所述第二缓存设备请求所述第一内容对象;
当所述第二缓存设备没有缓存所述第一内容对象时,根据所述第一内容对象对应的源服务器的IP地址从所述源服务器获取所述第一内容对象;
所述第一缓存设备向所述第二缓存设备发送所述第一内容对象,以便于所述第二缓存设备缓存所述第一内容对象。
根据本发明实施例的另一方面,提供一种分布式缓存的方法,包括:
第一缓存设备接收用户发送来的第一内容对象请求消息,所述第一内容对象请求消息包含第一内容对象的标识,所述第一内容对象请求消息用于获得所述第一内容对象;
如果所述第一缓存设备没有缓存所述第一内容对象,则根据所述第一内容对象的标识获得第二缓存设备的地址;
所述第一缓存设备根据所述第二缓存设备的地址向所述第二缓存设备请求所述第一内容对象;
当所述第二缓存设备缓存有所述第一内容对象时,所述第一缓存设备接收所述第二缓存设备发送的所述第一内容对象;
所述第一缓存设备将所述第一内容对象发送给所述用户。
根据本发明实施例的另一方面,提供一种缓存设备,所述缓存设备包括第一请求接收单元、处理单元、请求发送单元、获取单元和内容对象发送单元,其中:
所述第一请求接收单元,用于接收用户发送来的第一内容对象请求消息,所述第一内容对象请求消息包含第一内容对象的标识和所述第一内容对象对应的源服务器的互联网协议IP地址,所述第一内容对象请求消息用于获得所述第一内容对象;
所述处理单元,用于在所述缓存设备没有缓存所述第一内容对象时,根据所述第一内容对象的标识获得第二缓存设备的地址;
所述请求发送单元,用于根据所述第二缓存设备的地址向所述第二缓存设备请求所述第一内容对象;
所述获取单元,用于当所述第二缓存设备没有缓存所述第一内容对象时,根据所述第一内容对象对应的源服务器的IP地址从所述源服务器获取所述第一内容对象;
所述内容对象发送单元,用于向所述第二缓存设备发送所述第一内容对象,以便于所述第二缓存设备缓存所述第一内容对象。
根据本发明实施例的又一方面,提供一种缓存设备,所述缓存设备包括第一请求接收单元、处理单元、请求发送单元、内容对象接收单元和内容对象发送单元,其中:
所述第一请求接收单元,用于接收用户发送来的第一内容对象请求消息,所述第一内容对象请求消息包含第一内容对象的标识,所述第一内容对象请求消息用于获得所述第一内容对象;
所述处理单元,用于当所述缓存设备没有缓存所述第一内容对象时,则根据所述第一内容对象的标识获得第二缓存设备的地址;
所述请求发送单元,用于根据所述第二缓存设备的地址向所述第二缓存设备请求所述第一内容对象;
所述请求接收单元,用于当所述第二缓存设备缓存有所述第一内容对象时,接收所述第二缓存设备发送的所述第一内容对象;
所述内容对象发送单元,用于将所述第一内容对象发送给所述用户。
综上,本发明实施例提供了新的缓存方法,通过本发明实施例提供的技术方案将原本需要保存在所述第一缓存设备的所述第一内容对象分布缓存到多个缓存设备中的第二缓存设备,这样,即使所述第一缓存设备在收到用户发送的所述第一内容对象请求消息时没有缓存所述第一内容对象,也可以有机会从所述第二缓存设备获取所述第一内容对象,从而可以减少对位于上一级网络的所述第一内容对象对应的源服务器的访问,提高获取所述第一内容对象的速度,减少占用所述上一级网络的带宽。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种分布式缓存的方法流程示意图;
图2是本发明一个实施例提供的带缓存设备的网络示意图;
图3是本发明一个实施例提供的一种分布式缓存的方法流程示意图;
图4是本发明一个实施例提供的一种缓存设备示意图;
图5是本发明一个实施例提供的一种缓存设备示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在对本发明实施例具体描述前,对本发明实施例会用到的四个名词进行定义:
短期缓存,是指对内容对象进行短时间的缓存,缓存时长相对较短;
长期缓存,是指对内容对象进行长时间的缓存,缓存时长相对较长;
短期缓存对象,被短期缓存的内容对象认为是短期缓存对象;
长期缓存对象,被长期缓存的内容对象认为是长期缓存对象。
具体来说,短期缓存就是说被缓存的内容对象只能短时间的缓存,超过较短的缓存时长后所述被缓存的内容对象即被删除,如:所述较短的缓存时长为1天,被缓存的内容对象的缓存时间超过1天即被删除;长期缓存就是说被缓存的内容对象可以长时间的缓存,只有超过较长的缓存时长后才能被删除,如:所述较长的缓存时长为30天,只有被缓存的内容对象的缓存时间超过30天,才将被缓存的内容对象删除。短期缓存和长期缓存是相对来说的,具体短期缓存的时长和长期缓存的时长本发明实施例不做具体限制,使用者可以自行定义。
参见图1,本发明实施例提供了一种分布式缓存的方法,包括以下内容。
102,第一缓存设备接收用户发送来的第一内容对象请求消息,所述第一内容对象请求消息包含第一内容对象的标识和所述第一内容对象对应的源服务器的互联网协议(英文全称为InternetProtocol,英文缩写为IP)地址,所述第一内容对象请求消息用于获得所述第一内容对象。
104,如果所述第一缓存设备没有缓存所述第一内容对象,则根据所述第一内容对象的标识获得第二缓存设备的地址。
所述第一内容对象的标识是可以用于唯一地确定所述第一内容对象的信息,可选地,所述第一内容对象的标识可以是所述第一内容对象在被发布时所使用的统一资源标识符(英文全称为UniformResourceIdentifier,英文缩写为URI),也可以是对所述第一内容对象进行消息摘要算法第五版(英文全称为MessageDigestAlgorithm5,英文缩写为MD5)计算后获得的“指纹”信息,本发明实施例不做具体限制。所述第一内容对象对应的源服务器的IP地址可以为互联网协议第四版(英文全称为InternetProtocolVersion4,英文缩写为IPv4)地址或互联网协议第六版(英文全称为InternetProtocolVersion6,英文缩写为IPv6)地址。
可选的,所述第二缓存设备的地址和所述第一缓存设备的地址可以为IPv4地址或IPv6地址或媒体访问控制(英文全称为MediaAccessControl,英文缩写为MAC)地址。
所述第一缓存设备预先保存第一网络中的其他缓存设备的地址。可选地,所述第一网络可以是接入网络中汇聚交换机(英文全称为AggregationSwitch,英文缩写为AGGSW)的用户侧所连接的某个虚拟局域网(英文全称为VirtualLocalAreaNetwork,英文缩写为VLAN),也可以是AGGSW用户侧的整个网络。
可选地,所述第一缓存设备可以通过预先配置将所述第一网络中的其他缓存设备的地址保存起来,例如可以通过命令配置将所述第一网络中的其他缓存设备的地址保存到所述第一缓存设备中。
可选地,所述第一缓存设备预先保存的所述第一网络中的其他缓存设备的地址,可以通过在所述第一网络中每个缓存设备和所述AGGSW之间运行相关协议获得,例如,当所述其他缓存设备的地址为IPv4地址时,可以通过在所述第一网络中的缓存设备和所述AGGSW之间运行内部网关协议(英文全称为InteriorGatewayProtocol,英文缩写为IGP)来获得,所述IGP可以为中间系统到中间系统(英文全称为IntermediateSystemtoIntermediateSystem,英文缩写为IS-IS)协议或开放式最短路径优先协议(英文全称为OpenShortestPathFirstInteriorGatewayProtocol,英文缩写为OSPF)。当所述其他缓存设备的地址为IPv6地址时,可以通过在所述第一网络中每个缓存设备和所述AGGSW之间运行开放最短路径优先协议版本3(英文全称为OpenShortPathFirstProtocolVersion3,英文缩写为OSPFv3)或边界网关协议版本4+(英文全称为BoarderGatewayProtocol4+,英文缩写为BGP4+)来获得。当所述其他缓存设备的地址为MAC地址时,可以通过在所述第一网络中每个缓存设备和所述AGGSW之间运行地址解析协议(英文全称为AddressResolutionProtocol,英文缩写为ARP)协议获得。所述其他缓存设备的地址为IPv4地址举例来说,如图2所示,缓存设备1、缓存设备2及缓存设备3通过AGGSW连接骨干网,所述缓存设备1、缓存设备2及缓存设备3同属于一个VLAN,缓存设备1、缓存设备2及缓存设备3分别连接不同的用户,所述第一缓存设备可以为所述缓存设备1、缓存设备2及缓存设备3中任意一个,例如所述第一缓存设备为所述缓存设备1,则所述缓存设备1需要保存所述缓存设备2和缓存设备3的IPv4地址,通过所述缓存设备1、缓存设备2及缓存设备3分别与所述AGGSW之间运行IGP协议,所述AGGSW利用IGP协议通过所述AGGSW与所述缓存设备1直连链路将所述缓存设备2和缓存设备3的IPv4地址发布给所述缓存设备1,所述缓存设备1缓存所述缓存设备2和缓存设备3的IPv4地址。
如果所述第一缓存设备没有缓存所述第一内容对象,则需要向用于缓存所述第一内容对象的所述第二缓存设备请求所述第一内容对象。
首先根据所述第一内容对象的标识通过分布式哈希表(英文全称为DistributedHashTable,英文缩写为DHT)技术获得第二缓存设备的地址,以便向所述第二缓存设备请求所述第一内容对象。可选地,一种获得所述第二缓存设备的地址的具体过程如下。
对所述第一内容对象的标识进行哈希(英文全称为HASH)运算得到第一哈希值;根据所述第一哈希值和所述第一缓存设备中存有的第一对应关系得到第二缓存设备的地址,其中所述第一对应关系为所述第一哈希值与所述第二缓存设备的地址的对应关系。
可选地,通过所述第一哈希值获得所述第二缓存设备的地址可以通过以下方式实现。对所述第一缓存设备保存的所述第一网络中其他缓存设备的地址及所第一缓存设备的地址进行排序,并对排序过的缓存设备的地址进行编号,形成带编号的缓存设备地址表,也就形成了编号和缓存设备的地址的对应关系,每个编号对应一个缓存设备的地址,假设第二编号和所述第二缓存设备对应,通过对所述第一内容对象的标识进行哈希运算得到和所述第二编号对应的所述第一哈希值,也就能通过所述第一哈希值获得所述第二缓存设备的地址。例如,所述编号可以为0到n,其中n为所述其他缓存设备的数量,n+1则为所述第一网络中包含所述第一缓存设备的缓存设备总数量。对所述第一内容对象的标识进行哈希运算得到的第一哈希值,可以通过对所述第一内容对象的标识利用安全散列算法(英文全称为SecureHashAlgorithm,英文缩写为SHA)得到一个数字,将所述数字通过对所述缓存设备的总数量n+1进行取模操作得到第一哈希值,所述第一哈希值即对应到所述编号0到n中的某个编号值,由于所述编号中的每个编号值对应一个缓存设备的地址,进一步,所述第一哈希值也就对应到了所述缓存设备地址表中某个缓存设备的地址,将所述某个缓存设备的地址作为第二缓存设备的地址。更具体来说,例如所述第一缓存设备保存了所述第一网络中其他9个缓存设备的地址,加上所述第一缓存设备的地址,所述第一缓存设备保存了共10个缓存设备的地址,对这所述10个缓存设备的地址进行排序,可以按照地址从大到小进行排序,最大的缓存设备地址对应的编号为0,最小的缓存设备的地址对应的编号为9,排序好的缓存设备的地址分别对应到0到9中一个编号。对所述第一内容对象的标识利用SHA计算获得一个数字,将所述获得的数字通过对10取模运算的方式映射到所述缓存设备地址表中某一缓存设备地址,当所述获得的数字为11时,将11对10取模运算得到的值为1,则可以认为编号为1的缓存设备地址对应的缓存设备可能长期缓存了所述第一内容对象,将编号为1的缓存设备的地址作为所述第二缓存设备的地址。
可选地,所述第一网络中包括所述缓存设备和所述第二缓存设备的多个缓存设备都使用相同的HASH算法并且保存有所述第一对应关系,这样当有用户通过所述第一网络中所述多个缓存设备中的任一缓存设备获取所述第一内容对象时,也都可以通过所述相同的HASH算法和所述第一对应关系得到所述第二缓存设备的地址,以便向所述第二缓存设备请求所述第一内容对象。例如,所述第一网络中的所述多个缓存设备中包括第四缓存设备,当有用户通过所述第四缓存设备获取所述第一内容对象时,所述第四缓存设备通过对所述第一内容对象的标识进行哈希运算得到第一哈希值;根据所述第一哈希值和所述第四缓存设备中存有的所述第一对应关系得到所述第二缓存设备的地址,进一步可以向所述第二缓存设备请求所述第一内容对象。所述多个缓存设备是所述第一网络中的部分或全部缓存设备。
可选地,当所述第一缓存设备缓存了所述第一内容对象时,直接将所述第一内容对象发送给所述用户。
106,根据所述第二缓存设备的地址向所述第二缓存设备请求所述第一内容对象。
108,当所述第二缓存设备没有缓存所述第一内容对象时,根据所述第一内容对象对应的源服务器的IP地址从所述源服务器获取所述第一内容对象。
可选地,所述第一内容对象对应的源服务器可以为骨干网中缓存所述第一内容对象的缓存设备,也可以是骨干网中存储所述第一内容对象的服务器。
可选地,当所述第二缓存设备缓存有所述第一内容对象时,所述第一缓存设备直接将获取的所述第一内容对象发送给所述用户。
110,所述第一缓存设备向所述第二缓存设备发送所述第一内容对象,以便于所述第二缓存设备缓存所述第一内容对象。
所述第二缓存设备接收到所述第一缓存设备发送来的所述第一内容对象后,将所述第一内容对象缓存起来。这样,本实施例中的方法将原本需要保存在第一缓存设备的第一内容对象保存至多个缓存设备中的某一个缓存设备,例如本实施例中的第二缓存设备。在进行这样的操作后,即使第一缓存设备在收到用户发送的所述第一内容对象请求消息时没有缓存所述第一内容对象,也可以有机会从所述第二缓存设备为用户获取所述第一内容对象,从而可以减少对位于上一级网络中的所述服务器的访问,提高获取所述第一内容对象的速度,减少占用上一级网络的带宽。
可选地,即使第一缓存设备在收到用户发送的所述第一内容对象请求消息时缓存有所述第一内容对象,所述第二缓存设备还可以担任所述第一内容对象的备份缓存设备,以便在第一缓存设备出现内容读取故障时从所述第二缓存设备获取所述第一内容对象。
可选地,所述第一缓存设备从所述源服务器获得所述第一内容对象后,缓存所述第一内容对象,所述第一缓存设备缓存所述第一内容对象的时长小于所述第二缓存设备缓存所述第一内容对象的时长。所述第一缓存设备把所述第一内容对象作为短期缓存对象缓存起来,所述第二缓存设备把所述第一内容对象作为长期缓存对象缓存起来。所述第一缓存设备缓存所述第一内容对象以便于后续连接到所述第一缓存设备的用户访问所述第一内容对象时,不需要再到所述第一内容对象对应的源服务器或长期缓存所述第一内容对象的缓存设备获取,直接可以将所述第一内容对象发送给所述用户,提升了用户访问网络的速度,进一步,由于不需要到内容对象对应的源服务器获取所述第一内容对象,也减少了对骨干网带宽的占用。具体举例来说,例如,所述第一缓存设备缓存所述第一内容对象的时长为1天,所述第二缓存设备缓存所述第一内容对象的时长为30天,这样实现的好处在于,当所述第一缓存设备连接的用户访问网络频繁时,可以将用户访问的所述第一内容对象分散存储在所第二缓存设备上,所述第一缓存设备缓存的时长较短,可以尽快释放所述第一缓存设备的Cache空间,以便于缓存其他内容对象,所述第二缓存设备缓存所述第一内容对象的时长较长,当连接所述第一缓存设备的用户访问所述第一内容对象时,可以通过到所述第二缓存设备获取所述第一内容对象,这样所述第一缓存设备和所述第二缓存设备对用户可以体现为一个缓存设备,增大了缓存设备缓存的能力,提升了用户访问网络的速度,并且避免了频繁到所述第一内容对象对应的源服务器获取所述内容对象,减少了对骨干网带宽的占用,所述第二缓存设备缓存所述第一内容对象的时长可以为所述第一缓存设备缓存所述第一内容对象时长的2倍或2倍以上,本发明实施例不做具体限制。
可选地,所述第一缓存设备接收第三缓存设备发送来的第二内容对象请求消息,所述第二内容对象请求消息包含第二内容对象的标识,所述第二内容对象请求消息用于获得所述第二内容对象,所述第三缓存设备向所述第一缓存设备发送第二内容对象请求消息之前,通过所述第二内容对象标识获得所述第一缓存设备的地址,具体包括:
所述第三缓存设备对所述第二内容对象的标识进行哈希运算得到第二哈希值;
根据所述第二哈希值和所述第三缓存设备中存有的第二对应关系得到第一缓存设备的地址,其中所述第二对应关系为所述第二哈希值与第一缓存设备的地址的对应关系,所述第二对应关系的建立过程可以参见本发明实施例中所述第一对应关系的建立过程;
所述第一缓存设备向所述第三缓存设备发送响应消息,当所述第一缓存设备没有缓存所述第二内容对象时,所述响应消息不包含所述第二内容对象,当所述第一缓存设备缓存所述第二内容对象时,所述响应消息包含所述第二内容对象。
当所述第一缓存设备没有缓存所述第二内容对象时,所述第一缓存设备接收所述第三缓存设备发送来的第二内容对象,其中所述第二内容对象为所述第三缓存设备从与所述第二内容对象对应的源服务器获取的;
所述第一缓存设备作为所述第二内容对象的长期缓存设备缓存所述第二内容对象。
所述第一缓存设备、所述第二缓存设备、所述第三缓存设备和所述第四缓存设备位于接入网络中。
所述第一缓存设备、所述第二缓存设备、所述第三缓存设备和所述第四缓存设备可以为内容存储节点或具有缓存功能的路由器或具有缓存功能的交换机或具有缓存功能的其他网络设备。
参见图3,本发明实施例提供了另一种分布式缓存的方法,包括以下内容。
302,第一缓存设备接收用户发送来的第一内容对象请求消息,所述第一内容对象请求消息包含第一内容对象的标识,所述第一内容对象请求消息用于获得所述第一内容对象;
304,如果所述第一缓存设备没有缓存所述第一内容对象,则根据所述第一内容对象的标识获得第二缓存设备的地址;
306,所述第一缓存设备根据所述第二缓存设备的地址向所述第二缓存设备请求所述第一内容对象;
308,当所述第二缓存设备缓存有所述第一内容对象时,所述第一缓存设备接收所述第二缓存设备发送的所述第一内容对象;
310,所述第一缓存设备将所述第一内容对象发送给所述用户。
所述第一内容对象的标识是可以用于唯一地确定所述第一内容对象的信息,可选地,所述第一内容对象的标识可以是所述第一内容对象在被发布时所使用的URI,也可以是对所述第一内容对象进行MD5计算后获得的“指纹”信息,本发明实施例不做具体限制。
可选的,所述第二缓存设备的地址和所述第一缓存设备的地址可以为IPv4地址或IPv6地址或MAC地址。
所述第一缓存设备预先保存第一网络中的其他缓存设备的地址。可选地,所述第一网络可以是接入网络中AGGSW的用户侧所连接的某个VLAN,也可以是AGGSW用户侧的整个网络。
可选地,所述第一缓存设备可以通过预先配置将所述第一网络中的其他缓存设备的地址保存起来,例如可以通过命令配置将所述第一网络中的其他缓存设备的地址保存到所述第一缓存设备中。
可选地,所述第一缓存设备预先保存的所述第一网络中的其他缓存设备的地址,可以通过在所述第一网络中每个缓存设备和所述AGGSW之间运行相关协议获得,例如,当所述其他缓存设备的地址为IPv4地址时,可以通过在所述第一网络中的缓存设备和所述AGGSW之间运行IGP来获得,所述IGP可以为IS-IS协议或OSPF。当所述其他缓存设备的地址为IPv6地址时,可以通过在所述第一网络中每个缓存设备和所述AGGSW之间运行OSPFv3或BGP4来获得。当所述其他缓存设备的地址为MAC地址时,可以通过在所述第一网络中每个缓存设备和所述AGGSW之间运行ARP协议获得。所述其他缓存设备的地址为IPv4地址举例来说,如图2所示,缓存设备1、缓存设备2及缓存设备3通过AGGSW连接骨干网,所述缓存设备1、缓存设备2及缓存设备3同属于一个VLAN,缓存设备1、缓存设备2及缓存设备3分别连接不同的用户,所述第一缓存设备可以为所述缓存设备1、缓存设备2及缓存设备3中任意一个,例如所述第一缓存设备为所述缓存设备1,则所述缓存设备1需要保存所述缓存设备2和缓存设备3的IPv4地址,通过所述缓存设备1、缓存设备2及缓存设备3分别与所述AGGSW之间运行IGP协议,所述AGGSW利用IGP协议通过所述AGGSW与所述缓存设备1直连链路将所述缓存设备2和缓存设备3的IPv4地址发布给所述缓存设备1,所述缓存设备1缓存所述缓存设备2和缓存设备3的IPv4地址。
如果所述第一缓存设备没有缓存所述第一内容对象,则需要向用于缓存所述第一内容对象的所述第二缓存设备请求所述第一内容对象。
首先根据所述第一内容对象的标识通过DHT技术获得第二缓存设备的地址,以便向所述第二缓存设备请求所述第一内容对象。可选地,一种获得所述第二缓存设备的地址的具体过程如下。
对所述第一内容对象的标识进行哈希运算得到第一哈希值;根据所述第一哈希值和所述第一缓存设备中存有的第一对应关系得到第二缓存设备的地址,其中所述第一对应关系为所述第一哈希值与所述第二缓存设备的地址的对应关系。
可选地,通过所述第一哈希值获得所述第二缓存设备的地址可以通过以下方式实现。对所述第一缓存设备保存的所述第一网络中其他缓存设备的地址及所述第一缓存设备的地址进行排序,并对排序过的缓存设备的地址进行编号,形成带编号的缓存设备地址表,也就形成了编号和缓存设备的地址的对应关系,每个编号对应一个缓存设备的地址,假设第二编号和所述第二缓存设备对应,通过对所述第一内容对象的标识进行哈希运算得到和所述第二编号对应的所述第一哈希值,也就能通过所述第一哈希值获得所述第二缓存设备的地址。例如,所述编号可以为0到n,其中n为所述其他缓存设备的数量,n+1则为所述第一网络中包含所述第一缓存设备的缓存设备总数量。对所述第一内容对象的标识进行哈希运算得到的第一哈希值,可以通过对所述第一内容对象的标识利用SHA得到一个数字,将所述数字通过对所述缓存设备的总数量n+1进行取模操作得到第一哈希值,所述第一哈希值即对应到所述编号0到n中的某个编号值,由于所述编号中的每个编号值对应一个缓存设备的地址,进一步,所述第一哈希值也就对应到了所述缓存设备地址表中某个缓存设备的地址,将所述某个缓存设备的地址作为第二缓存设备的地址。更具体来说,例如所述第一缓存设备保存了所述第一网络中其他9个缓存设备的地址,加上所述第一缓存设备的地址,所述第一缓存设备保存了共10个缓存设备的地址,对这所述10个缓存设备的地址进行排序,可以按照地址从大到小进行排序,最大的缓存设备地址对应的编号为0,最小的缓存设备的地址对应的编号为9,排序好的缓存设备的地址分别对应到0到9中一个编号。对所述第一内容对象的标识利用SHA计算获得一个数字,将所述获得的数字通过对10取模运算的方式映射到所述缓存设备地址表中某一缓存设备地址,当所述获得的数字为11时,将11对10取模运算得到的值为1,则可以认为编号为1的缓存设备地址对应的缓存设备可能长期缓存了所述第一内容对象,将编号为1的缓存设备的地址作为所述第二缓存设备的地址。
可选地,所述第一网络中包括所述缓存设备和所述第二缓存设备的多个缓存设备都使用相同的HASH算法并且保存有所述第一对应关系,这样当有用户通过所述第一网络中的所述多个缓存设备中的任一缓存设备获取所述第一内容对象时,也都可以通过所述相同的HASH算法和所述第一对应关系得到所述第二缓存设备的地址,以便向所述第二缓存设备请求所述第一内容对象。例如,所述第一网络中的所述多个缓存设备包括第四缓存设备,当有用户通过所述第四缓存设备获取所述第一内容对象时,所述第四缓存设备通过对所述第一内容对象的标识进行哈希运算得到第一哈希值;根据所述第一哈希值和所述第四缓存设备中存有的第一对应关系得到第二缓存设备的地址,进一步可以向所述第二缓存设备请求所述第一内容对象。所述多个缓存设备是所述第一网络中的部分或全部缓存设备。
可选地,当所述第一缓存设备缓存了所述第一内容对象时,直接将所述第一内容对象发送给所述用户。
所述第一缓存设备、所述第二缓存设备和所述第四缓存设备位于接入网络中。
所述第一缓存设备、所述第二缓存设备和所述第四缓存设备可以为内容存储节点或具有缓存功能的路由器或具有缓存功能的交换机或具有缓存功能的其他网络设备。
可见,本发明实施例提供了一种新的缓存方法,缓存设备可以通过到网络中的其他缓存设备为用户获取内容对象,从而避免了频繁到接入网络的上一级骨干网获取内容对象,提升了用户获取内容对象的速度,进一步也减少对骨干网带宽的占用。
参见图4,本发明实施例提供了一种缓存设备,包括以下内容。
所述缓存设备包括第一请求接收单元402、处理单元404、请求发送单元406、获取单元408和内容对象发送单元410,其中:
所述第一请求接收单元402,用于接收用户发送来的第一内容对象请求消息,所述第一内容对象请求消息包含第一内容对象的标识和所述第一内容对象对应的源服务器的IP地址,所述第一内容对象请求消息用于获得所述第一内容对象;
所述处理单元404,用于在所述缓存设备没有缓存所述第一内容对象时,根据所述第一内容对象的标识获得第二缓存设备的地址;
所述请求发送单元406,用于根据所述第二缓存设备的地址向所述第二缓存设备请求所述第一内容对象;
所述获取单元408,用于当所述第二缓存设备没有缓存所述第一内容对象时,根据所述第一内容对象对应的源服务器的IP地址从所述源服务器获取所述第一内容对象;
所述内容对象发送单元410,用于向所述第二缓存设备发送所述第一内容对象,以便于所述第二缓存设备缓存所述第一内容对象。
所述第一内容对象的标识是可以用于唯一地确定所述第一内容对象的信息,可选地,所述第一内容对象的标识可以是所述第一内容对象在被发布时所使用的URI,也可以是对所述第一内容对象进行MD5计算后获得的“指纹”信息,本发明实施例不做具体限制。所述第一内容对象对应的源服务器的IP地址可以为IPv4地址或IPv6地址。
可选的,所述第二缓存设备的地址和所述缓存设备的地址可以为IPv4地址或IPv6地址或MAC地址。
需要说明的是,在本实施例中,“所述缓存设备”是指包括第一请求接收单元402、处理单元404、请求发送单元406、获取单元408和内容对象发送单元410的缓存设备,而不是指“第二缓存设备”。
所述缓存设备预先保存第一网络中的其他缓存设备的地址。可选地,所述第一网络可以是AGGSW的用户侧所连接的某个VLAN,也可以是AGGSW用户侧的整个网络。
可选地,所述缓存设备可以通过预先配置将所述第一网络中的其他缓存设备的地址保存起来,例如可以通过命令配置将所述第一网络中的其他缓存设备的地址保存到所述缓存设备中。
可选地,所述缓存设备预先保存的所述第一网络中的其他缓存设备的地址,可以通过在所述第一网络中每个缓存设备和所述AGGSW之间运行相关协议获得,例如,当所述其他缓存设备的地址为IPv4地址时,可以通过在所述第一网络中的缓存设备和所述AGGSW之间运行IGP来获得,所述IGP可以为IS-IS协议或OSPF。当所述其他缓存设备的地址为IPv6地址时,可以通过在所述第一网络中每个缓存设备和所述AGGSW之间运行OSPFv3或BGP4+来获得。当所述其他缓存设备的地址为MAC地址时,可以通过在所述第一网络中每个缓存设备和所述AGGSW之间运行ARP协议获得。所述其他缓存设备的地址为IPv4地址举例来说,如图2所示,缓存设备1、缓存设备2及缓存设备3通过AGGSW连接骨干网,所述缓存设备1、缓存设备2及缓存设备3同属于一个VLAN,缓存设备1、缓存设备2及缓存设备3分别连接不同的用户,所述缓存设备可以为所述缓存设备1、缓存设备2及缓存设备3中任意一个,例如所述缓存设备为所述缓存设备1,则所述缓存设备1需要保存所述缓存设备2和缓存设备3的IPv4地址,通过所述缓存设备1、缓存设备2及缓存设备3分别与所述AGGSW之间运行IGP协议,所述AGGSW利用IGP协议通过所述AGGSW与所述缓存设备1直连链路将所述缓存设备2和缓存设备3的IPv4地址发布给所述缓存设备1,所述缓存设备1缓存所述缓存设备2和缓存设备3的IPv4地址。
如果所述缓存设备没有缓存所述第一内容对象,所述请求发送单元406需要向用于缓存所述第一内容对象的所述第二缓存设备请求所述第一内容对象。
首先所述处理单元404根据所述第一内容对象的标识通过DHT技术获得第二缓存设备的地址,以便向所述第二缓存设备请求所述第一内容对象。可选地,一种获得所述第二缓存设备的地址的具体过程如下。
对所述第一内容对象的标识进行哈希运算得到第一哈希值;根据所述第一哈希值和所述缓存设备中存有的第一对应关系得到第二缓存设备的地址,其中所述第一对应关系为所述第一哈希值与所述第二缓存设备的地址的对应关系。
可选地,通过所述第一哈希值获得所述第二缓存设备的地址可以通过以下方式实现。对所述缓存设备保存的所述第一网络中其他缓存设备的地址及所缓存设备的地址进行排序,并对排序过的缓存设备的地址进行编号,形成带编号的缓存设备地址表,也就形成了编号和缓存设备的地址的对应关系,每个编号对应一个缓存设备的地址,假设第二编号和所述第二缓存设备对应,通过对所述第一内容对象的标识进行哈希运算得到和所述第二编号对应的所述第一哈希值,也就能通过所述第一哈希值获得所述第二缓存设备的地址。例如,所述编号可以为0到n,其中n为所述其他缓存设备的数量,n+1则为所述第一网络中包含所述缓存设备的缓存设备总数量。对所述第一内容对象的标识进行哈希运算得到的第一哈希值,可以通过对所述第一内容对象的标识利用SHA得到一个数字,将所述数字通过对所述缓存设备的总数量n+1进行取模操作得到第一哈希值,所述第一哈希值即对应到所述编号0到n中的某个编号值,由于所述编号中的每个编号值对应一个缓存设备的地址,进一步,所述第一哈希值也就对应到了所述缓存设备地址表中某个缓存设备的地址,将所述某个缓存设备的地址作为第二缓存设备的地址。更具体来说,例如所述缓存设备保存了所述第一网络中其他9个缓存设备的地址,加上所述缓存设备的地址,所述缓存设备保存了共10个缓存设备的地址,对这所述10个缓存设备的地址进行排序,可以按照地址从大到小进行排序,最大的缓存设备地址对应的编号为0,最小的缓存设备的地址对应的编号为9,排序好的缓存设备的地址分别对应到0到9中一个编号。对所述第一内容对象的标识利用SHA计算获得一个数字,将所述获得的数字通过对10取模运算的方式映射到所述缓存设备地址表中某一缓存设备地址,当所述获得的数字为11时,将11对10取模运算得到的值为1,则可以认为编号为1的缓存设备地址对应的缓存设备可能长期缓存了所述第一内容对象,将编号为1的缓存设备的地址作为所述第二缓存设备的地址。
可选地,所述第一网络中的包括所述缓存设备和所述第二缓存设备的多个缓存设备都使用相同的HASH算法并且保存有所述第一对应关系,这样当有用户通过所述第一网络中所述多个缓存设备中的任一缓存设备获取所述第一内容对象时,也都可以通过所述相同的HASH算法和所述第一对应关系得到所述第二缓存设备的地址,以便向所述第二缓存设备请求所述第一内容对象。例如,所述第一网络中的所述多个缓存设备包括第四缓存设备,当有用户通过所述第四缓存设备获取所述第一内容对象时,所述第四缓存设备通过对所述第一内容对象的标识进行哈希运算得到第一哈希值;根据所述第一哈希值和所述第四缓存设备中存有的第一对应关系得到第二缓存设备的地址,进一步可以向所述第二缓存设备请求所述第一内容对象。所述多个缓存设备是所述第一网络中的部分或全部缓存设备。
所述第二缓存设备接收到所述内容对象发送单元410发送来的所述第一内容对象后,将所述第一内容对象缓存起来。这样,将原本需要保存在所述缓存设备的第一内容对象保存至多个缓存设备中的某一个缓存设备,例如本实施例中的第二缓存设备。在进行这样的操作后,即使所述缓存设备在收到用户发送的所述第一内容对象请求消息时没有缓存所述第一内容对象,也可以有机会从所述第二缓存设备为用户获取所述第一内容对象,从而可以减少对位于上一级网络中的所述服务器的访问,提高获取所述第一内容对象的速度,减少占用上一级网络的带宽。
可选地,即使第一缓存设备在收到用户发送的所述第一内容对象请求消息时缓存有所述第一内容对象,所述第二缓存设备还可以担任所述第一内容对象的备份缓存设备,以便在第一缓存设备出现内容读取故障时从所述第二缓存设备获取所述第一内容对象。
可选地,所述缓存设备还包括缓存单元,用于当所述获取单元408根据所述第一内容对象标识从所述第一内容对象对应的源服务器获取所述第一内容对象之后,缓存所述第一内容对象,缓存所述第一内容对象的时长小于所述第二缓存设备缓存所述第一内容对象的时长。所述缓存设备把所述第一内容对象作为短期缓存对象缓存起来,所述第二缓存设备把所述第一内容对象作为长期缓存对象缓存起来。所述缓存设备的缓存单元缓存所述第一内容对象以便于后续连接到所述缓存设备的用户访问所述第一内容对象时,不需要再到所述第一内容对象对应的源服务器或长期缓存所述第一内容对象的缓存设备获取,直接可以将所述第一内容对象发送给所述用户,提升了用户访问网络的速度,进一步,由于不需要到内容对象对应的源服务器获取所述第一内容对象,也减少了对骨干网带宽的占用。具体举例来说,例如,所述缓存单元缓存所述第一内容对象的时长为1天,所述第二缓存设备缓存所述第一内容对象的时长为30天,这样实现的好处在于,当所述缓存设备连接的用户访问网络频繁时,可以将用户访问的所述第一内容对象分散存储在所第二缓存设备上,所述缓存设备缓存的时长较短,可以尽快释放所述缓存设备的Cache空间,以便于缓存其他内容对象,所述第二缓存设备缓存所述第一内容对象的时长较长,当连接所述缓存设备的用户访问所述第一内容对象时,可以通过到所述第二缓存设备获取所述第一内容对象,这样所述缓存设备和所述第二缓存设备对用户可以体现为一个缓存设备,增大了缓存设备缓存的能力,提升了用户访问网络的速度,并且避免了频繁到所述第一内容对象对应的源服务器获取所述内容对象,减少了对骨干网带宽的占用,所述第二缓存设备缓存所述第一内容对象的时长可以为所述缓存设备缓存所述第一内容对象时长的2倍或2倍以上,本发明实施例不做具体限制。
可选地,所述缓存设备包括第二请求接收单元和响应发送单元,其中:
所述第二请求接收单元,用于接收第三缓存设备发送来的第二内容对象请求消息,所述第二内容对象请求消息包含第二内容对象的标识,所述第二内容对象请求消息用于获得所述第二内容对象,所述第三缓存设备向所述缓存设备发送第二内容对象请求消息之前,通过所述第二内容对象标识获得所述缓存设备的地址,具体包括:
所述第三缓存设备对所述第二内容对象的标识进行哈希运算得到第二哈希值;
根据所述第二哈希值和所述第三缓存设备中存有的第二对应关系得到所述缓存设备的地址,其中所述第二对应关系为所述第二哈希值与所述缓存设备的地址的对应关系;
所述响应发送单元,用于向所述第三缓存设备发送响应消息,当所述缓存设备没有缓存所述第二内容对象时,所述响应消息不包含所述第二内容对象,当所述缓存设备缓存所述第二内容对象时,所述响应消息包含所述第二内容对象。
进一步,所述缓存设备还可以包括:
内容对象接收单元,用于当所述缓存单元没有缓存所述第二内容对象时,接收所述第三缓存设备发送来的第二内容对象,其中所述第二内容对象为所述第三缓存设备从与所述第二内容对象对应的源服务器获取的;
相应地,所述缓存单元还用于缓存所述第二内容对象。
可选地,当所述第二缓存设备缓存有所述第一内容对象时,所述第一缓存设备直接将获取的所述第一内容对象发送给所述用户。
可选地,所述第一内容对象对应的源服务器可以为骨干网中缓存所述第一内容对象的缓存设备,也可以是骨干网中存储所述第一内容对象的服务器。
可选地,本发明实施例提供的上述单元可以合并为一个或者多个。可选地,在实现时,所述第一请求接收单元402、所述请求发送单元406、所述内容对象发送单元410、所述第二请求接收单元和所述响应发送单元由一个或多个物理接口实现,所述处理单元404可以为处理器,所述缓存单元可以为Cache。所述一个或多个物理接口、处理器和Cache协同工作,使所述缓存设备完成了本实施例中执行的操作。
可选地,所述第一内容对象对应的源服务器可以为骨干网中缓存所述第一内容对象的存储设备,也可以是骨干网中存储所述第一内容对象的服务器。
所述缓存设备和所述第二缓存设备可以为内容存储节点或具有缓存功能的路由器或具有缓存功能的交换机或具有缓存功能的其他网络设备。
可选地,所述缓存设备可以是本发明实施例提供的一种分布式缓存的方法中的所述第一缓存设备。
参见图5,本发明实施例提供了一种缓存设备,包括以下内容。
所述缓存设备包括第一请求接收单元502、处理单元504、请求发送单元506、内容对象接收单元508和内容对象发送单元510,其中:
所述第一请求接收单元502,用于接收用户发送来的第一内容对象请求消息,所述第一内容对象请求消息包含第一内容对象的标识,所述第一内容对象请求消息用于获得所述第一内容对象;
所述处理单元504,用于当所述缓存设备没有缓存所述第一内容对象时,则根据所述第一内容对象的标识获得第二缓存设备的地址;
所述请求发送单元506,用于根据所述第二缓存设备的地址向所述第二缓存设备请求所述第一内容对象;
所述请求接收单元508,用于当所述第二缓存设备缓存有所述第一内容对象时,接收所述第二缓存设备发送的所述第一内容对象;
所述内容对象发送单元510,用于将所述第一内容对象发送给所述用户。
所述第一内容对象的标识是可以用于唯一地确定所述第一内容对象的信息,可选地,所述第一内容对象的标识可以是所述第一内容对象在被发布时所使用的URI,也可以是对所述第一内容对象进行MD5计算后获得的“指纹”信息,本发明实施例不做具体限制。
可选的,所述第二缓存设备的地址和所述缓存设备的地址可以为IPv4地址或IPv6地址或MAC地址。
所述缓存设备预先保存第一网络中的其他缓存设备的地址。可选地,所述第一网络可以是AGGSW的用户侧所连接的某个VLAN,也可以是AGGSW用户侧的整个网络。
可选地,所述缓存设备可以通过预先配置将所述第一网络中的其他缓存设备的地址保存起来,例如可以通过命令配置将所述第一网络中的其他缓存设备的地址保存到所述缓存设备中。
可选地,所述缓存设备预先保存的所述第一网络中的其他缓存设备的地址,可以通过在所述第一网络中每个缓存设备和所述AGGSW之间运行相关协议获得,例如,当所述其他缓存设备的地址为IPv4地址时,可以通过在所述第一网络中的缓存设备和所述AGGSW之间运行IGP来获得,所述IGP可以为IS-IS协议或OSPF。当所述其他缓存设备的地址为IPv6地址时,可以通过在所述第一网络中每个缓存设备和所述AGGSW之间运行OSPFv3或BGP4+来获得。当所述其他缓存设备的地址为MAC地址时,可以通过在所述第一网络中每个缓存设备和所述AGGSW之间运行ARP协议获得。所述其他缓存设备的地址为IPv4地址举例来说,如图2所示,缓存设备1、缓存设备2及缓存设备3通过AGGSW连接骨干网,所述缓存设备1、缓存设备2及缓存设备3同属于一个VLAN,缓存设备1、缓存设备2及缓存设备3分别连接不同的用户,所述缓存设备可以为所述缓存设备1、缓存设备2及缓存设备3中任意一个,例如所述缓存设备为所述缓存设备1,则所述缓存设备1需要保存所述缓存设备2和缓存设备3的IPv4地址,通过所述缓存设备1、缓存设备2及缓存设备3分别与所述AGGSW之间运行IGP协议,所述AGGSW利用IGP协议通过所述AGGSW与所述缓存设备1直连链路将所述缓存设备2和缓存设备3的IPv4地址发布给所述缓存设备1,所述缓存设备1缓存所述缓存设备2和缓存设备3的IPv4地址。
如果所述缓存设备没有缓存所述第一内容对象,则所述请求发送单元506需要向用于缓存所述第一内容对象的所述第二缓存设备请求所述第一内容对象。首先所述处理单元504根据所述第一内容对象的标识通过DHT技术获得第二缓存设备的地址,以便向所述第二缓存设备请求所述第一内容对象。可选地,一种获得所述第二缓存设备的地址的具体过程如下。
对所述第一内容对象的标识进行哈希运算得到第一哈希值;根据所述第一哈希值和所述缓存设备中存有的第一对应关系得到第二缓存设备的地址,其中所述第一对应关系为所述第一哈希值与所述第二缓存设备的地址的对应关系。
可选地,通过所述第一哈希值获得所述第二缓存设备的地址可以通过以下方式实现。对所述缓存设备保存的所述第一网络中其他缓存设备的地址及所述缓存设备的地址进行排序,并对排序过的缓存设备的地址进行编号,形成带编号的缓存设备地址表,也就形成了编号和缓存设备的地址的对应关系,每个编号对应一个缓存设备的地址,假设第二编号和所述第二缓存设备对应,通过对所述第一内容对象的标识进行哈希运算得到和所述第二编号对应的所述第一哈希值,也就能通过所述第一哈希值获得所述第二缓存设备的地址。例如,所述编号可以为0到n,其中n为所述其他缓存设备的数量,n+1则为所述第一网络中包含所述缓存设备的缓存设备总数量。对所述第一内容对象的标识进行哈希运算得到的第一哈希值,可以通过对所述第一内容对象的标识利用SHA得到一个数字,将所述数字通过对所述缓存设备的总数量n+1进行取模操作得到第一哈希值,所述第一哈希值即对应到所述编号0到n中的某个编号值,由于所述编号中的每个编号值对应一个缓存设备的地址,进一步,所述第一哈希值也就对应到了所述缓存设备地址表中某个缓存设备的地址,将所述某个缓存设备的地址作为第二缓存设备的地址。更具体来说,例如所述缓存设备保存了所述第一网络中其他9个缓存设备的地址,加上所述缓存设备的地址,所述缓存设备保存了共10个缓存设备的地址,对这所述10个缓存设备的地址进行排序,可以按照地址从大到小进行排序,最大的缓存设备地址对应的编号为0,最小的缓存设备的地址对应的编号为9,排序好的缓存设备的地址分别对应到0到9中一个编号。对所述第一内容对象的标识利用SHA计算获得一个数字,将所述获得的数字通过对10取模运算的方式映射到所述缓存设备地址表中某一缓存设备地址,当所述获得的数字为11时,将11对10取模运算得到的值为1,则可以认为编号为1的缓存设备地址对应的缓存设备可能长期缓存了所述第一内容对象,将编号为1的缓存设备的地址作为所述第二缓存设备的地址。
可选地,所述第一网络中包括所述缓存设备和所述第二缓存设备的多个缓存设备都使用相同的HASH算法并且保存有所述第一对应关系,这样当有用户通过所述第一网络中的所述多个缓存设备中任一缓存设备获取所述第一内容对象时,也都可以通过所述相同的HASH算法和所述第一对应关系得到所述第二缓存设备,以便向所述第二缓存设备请求所述第一内容对象。例如,所述多个缓存设备中包括第四缓存设备,当有用户通过所述第四缓存设备获取所述第一内容对象时,所述第四缓存设备通过对所述第一内容对象的标识进行哈希运算得到第一哈希值;根据所述第一哈希值和所述第四缓存设备中存有的第一对应关系得到第二缓存设备的地址,进一步可以向所述第二缓存设备请求所述第一内容对象。所述多个缓存设备是所述第一网络中的部分或全部缓存设备。
可选地,当所述第一缓存设备缓存了所述第一内容对象时,直接将所述第一内容对象发送给所述用户。
所述第一缓存设备、所述第二缓存设备和所述第四缓存设备位于接入网络中。
所述缓存设备、所述第二缓存设备和所述第四缓存设备可以为内容存储节点或具有缓存功能的路由器或具有缓存功能的交换机或具有缓存功能的其他网络设备。
可选地,本发明实施例提供的上述单元可以合并为一个或者多个。可选地,在实现时,所述第一请求接收单元502、所述请求发送单元506、所述内容对象接收单元508和所述内容对象发送单元510由一个或多个物理接口实现,所述处理单元504可以为处理器。所述一个或多个物理接口和处理器使所述缓存设备完成了本实施例中执行的操作。
可选地,当所述缓存设备缓存了所述第一内容对象时,所述内容对象发送单元510直接将所述第一内容对象发送给所述用户。
可选地,所述缓存设备可以是本发明实施例提供的另一种分布式缓存的方法中的所述第一缓存设备。
可见,本发明实施例提供了一种新的缓存设备,所述缓存设备可以通过到网络中的其他缓存设备为用户获取内容对象,从而避免了频繁到接入网络的上一级骨干网获取内容对象,提升了用户获取内容对象的速度,进一步也减少对骨干网带宽的占用。
本发明实施例中提到的第一缓存设备、第一内容对象请求消息、第一内容对象中的“第一”只是用来做名字标识,并不代表顺序上的第一;第二缓存设备、第二内容对象、第二编号和第二内容对象请求消息中的“第二”也只是用来做名字标识,并不代表顺序上的第二;第三缓存设备中的“第三”只是用来做名字标识,并不代表顺序上的第三;第四缓存设备中的“第四”只是用来做名字标识,并不代表顺序上的第四。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (14)

1.一种分布式缓存的方法,其特征在于,包括:
第一缓存设备接收用户发送来的第一内容对象请求消息,所述第一内容对象请求消息包含第一内容对象的标识和所述第一内容对象对应的源服务器的互联网协议IP地址,所述第一内容对象请求消息用于获得所述第一内容对象;
如果所述第一缓存设备没有缓存所述第一内容对象,则根据所述第一内容对象的标识获得第二缓存设备的地址;
所述根据所述第一内容对象的标识获得第二缓存设备的地址包括:
对所述第一内容对象的标识进行哈希HASH运算得到第一哈希值;
根据所述第一哈希值和所述第一缓存设备中存有的第一对应关系得到第二缓存设备的地址,其中所述第一对应关系为所述第一哈希值与所述第二缓存设备的地址的对应关系;
根据所述第二缓存设备的地址向所述第二缓存设备请求所述第一内容对象;
当所述第二缓存设备没有缓存所述第一内容对象时,根据所述第一内容对象对应的源服务器的IP地址从所述源服务器获取所述第一内容对象;
所述第一缓存设备向所述第二缓存设备发送所述第一内容对象,以便于所述第二缓存设备缓存所述第一内容对象。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一内容对象对应的源服务器的IP地址从所述源服务器获取所述第一内容对象之后,进一步包括:
所述第一缓存设备缓存所述第一内容对象;
所述第一缓存设备缓存所述第一内容对象的时长小于所述第二缓存设备缓存所述第一内容对象的时长。
3.根据权利要求1至2任一权利要求所述的方法,其特征在于,所述第一缓存设备和所述第二缓存设备位于接入网络中。
4.根据权利要求3所述的方法,其特征在于,进一步包括:
所述第一缓存设备接收第三缓存设备发送来的第二内容对象请求消息,所述第二内容对象请求消息包含第二内容对象的标识,所述第二内容对象请求消息用于获得所述第二内容对象,所述第三缓存设备向所述第一缓存设备发送第二内容对象请求消息之前,通过所述第二内容对象标识获得所述第一缓存设备的地址,具体包括:
所述第三缓存设备对所述第二内容对象的标识进行哈希运算得到第二哈希值;
根据所述第二哈希值和所述第三缓存设备中存有的第二对应关系得到第一缓存设备的地址,其中所述第二对应关系为所述第二哈希值与第一缓存设备的地址的对应关系;
所述第一缓存设备向所述第三缓存设备发送响应消息,当所述第一缓存设备没有缓存所述第二内容对象时,所述响应消息不包含所述第二内容对象,当所述第一缓存设备缓存所述第二内容对象时,所述响应消息包含所述第二内容对象。
5.根据权利要求4所述的方法,其特征在于,进一步包括:
当所述第一缓存设备没有缓存所述第二内容对象时,所述第一缓存设备接收所述第三缓存设备发送来的第二内容对象,其中所述第二内容对象为所述第三缓存设备从与所述第二内容对象对应的源服务器获取的;
所述第一缓存设备缓存所述第二内容对象。
6.一种分布式缓存的方法,其特征在于,包括:
第一缓存设备接收用户发送来的第一内容对象请求消息,所述第一内容对象请求消息包含第一内容对象的标识,所述第一内容对象请求消息用于获得所述第一内容对象;
如果所述第一缓存设备没有缓存所述第一内容对象,则根据所述第一内容对象的标识获得第二缓存设备的地址;
所述根据所述第一内容对象的标识获得第二缓存设备的地址包括:
对所述第一内容对象的标识进行哈希HASH运算得到第一哈希值;
根据所述第一哈希值和所述第一缓存设备中存有的第一对应关系得到第二缓存设备的地址,其中所述第一对应关系为所述第一哈希值与所述第二缓存设备的地址的对应关系;
所述第一缓存设备根据所述第二缓存设备的地址向所述第二缓存设备请求所述第一内容对象;
当所述第二缓存设备缓存有所述第一内容对象时,所述第一缓存设备接收所述第二缓存设备发送的所述第一内容对象;
所述第一缓存设备将所述第一内容对象发送给所述用户。
7.根据权利要求6所述的方法,其特征在于,所述第一缓存设备和所述第二缓存设备位于接入网络中。
8.一种缓存设备,其特征在于,所述缓存设备包括第一请求接收单元、处理单元、请求发送单元、获取单元和内容对象发送单元,其中:
所述第一请求接收单元,用于接收用户发送来的第一内容对象请求消息,所述第一内容对象请求消息包含第一内容对象的标识和所述第一内容对象对应的源服务器的互联网协议IP地址,所述第一内容对象请求消息用于获得所述第一内容对象;
所述处理单元,用于在所述缓存设备没有缓存所述第一内容对象时,根据所述第一内容对象的标识获得第二缓存设备的地址;
所述处理单元根据所述第一内容对象的标识获得第二缓存设备的地址包括:
对所述第一内容对象的标识进行哈希HASH运算得到第一哈希值;
根据所述第一哈希值和所述缓存设备中存有的第一对应关系得到第二缓存设备的地址,其中所述第一对应关系为所述第一哈希值与所述第二缓存设备的地址的对应关系;
所述请求发送单元,用于根据所述第二缓存设备的地址向所述第二缓存设备请求所述第一内容对象;
所述获取单元,用于当所述第二缓存设备没有缓存所述第一内容对象时,根据所述第一内容对象对应的源服务器的IP地址从所述源服务器获取所述第一内容对象;
所述内容对象发送单元,用于向所述第二缓存设备发送所述第一内容对象,以便于所述第二缓存设备缓存所述第一内容对象。
9.根据权利要求8所述的缓存设备,其特征在于,进一步包括:
缓存单元,用于当所述获取单元根据所述第一内容对象标识从所述第一内容对象对应的源服务器获取所述第一内容对象之后,缓存所述第一内容对象,缓存所述第一内容对象的时长小于所述第二缓存设备缓存所述第一内容对象的时长。
10.根据权利要求8至9任一权利要求所述的缓存设备,其特征在于,所述缓存设备和所述第二缓存设备位于接入网络中。
11.根据权利要求10所述的缓存设备,其特征在于,进一步,包括第二请求接收单元和响应发送单元,其中:
所述第二请求接收单元,用于接收第三缓存设备发送来的第二内容对象请求消息,所述第二内容对象请求消息包含第二内容对象的标识,所述第二内容对象请求消息用于获得所述第二内容对象,所述第三缓存设备向所述缓存设备发送第二内容对象请求消息之前,通过所述第二内容对象标识获得所述缓存设备的地址,具体包括:
所述第三缓存设备对所述第二内容对象的标识进行哈希运算得到第二哈希值;
根据所述第二哈希值和所述第三缓存设备中存有的第二对应关系得到所述缓存设备的地址,其中所述第二对应关系为所述第二哈希值与所述缓存设备的地址的对应关系;
所述响应发送单元,用于向所述第三缓存设备发送响应消息,当所述缓存设备没有缓存所述第二内容对象时,所述响应消息不包含所述第二内容对象,当所述缓存设备缓存所述第二内容对象时,所述响应消息包含所述第二内容对象。
12.根据权利要求11所述的缓存设备,其特征在于,所述缓存设备进一步包括:
内容对象接收单元,用于当所述缓存单元没有缓存所述第二内容对象时,接收所述第三缓存设备发送来的第二内容对象,其中所述第二内容对象为所述第三缓存设备从与所述第二内容对象对应的源服务器获取的;
相应地,所述缓存单元还用于缓存所述第二内容对象。
13.一种缓存设备,其特征在于,所述缓存设备包括第一请求接收单元、处理单元、请求发送单元、内容对象接收单元和内容对象发送单元,其中:
所述第一请求接收单元,用于接收用户发送来的第一内容对象请求消息,所述第一内容对象请求消息包含第一内容对象的标识,所述第一内容对象请求消息用于获得所述第一内容对象;
所述处理单元,用于当所述缓存设备没有缓存所述第一内容对象时,则根据所述第一内容对象的标识获得第二缓存设备的地址;
所述处理单元根据所述第一内容对象的标识获得第二缓存设备的地址包括:
对所述第一内容对象的标识进行哈希HASH运算得到第一哈希值;
根据所述第一哈希值和所述缓存设备中存有的第一对应关系得到第二缓存设备的地址,其中所述第一对应关系为所述第一哈希值与所述第二缓存设备的地址的对应关系;
所述请求发送单元,用于根据所述第二缓存设备的地址向所述第二缓存设备请求所述第一内容对象;
所述请求接收单元,用于当所述第二缓存设备缓存有所述第一内容对象时,接收所述第二缓存设备发送的所述第一内容对象;
所述内容对象发送单元,用于将所述第一内容对象发送给所述用户。
14.根据权利要求13所述缓存设备,其特征在于,所述缓存设备和所述第二缓存设备位于接入网络中。
CN201210106735.3A 2012-04-12 2012-04-12 分布式缓存的方法及设备 Active CN102857547B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210106735.3A CN102857547B (zh) 2012-04-12 2012-04-12 分布式缓存的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210106735.3A CN102857547B (zh) 2012-04-12 2012-04-12 分布式缓存的方法及设备

Publications (2)

Publication Number Publication Date
CN102857547A CN102857547A (zh) 2013-01-02
CN102857547B true CN102857547B (zh) 2016-03-30

Family

ID=47403738

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210106735.3A Active CN102857547B (zh) 2012-04-12 2012-04-12 分布式缓存的方法及设备

Country Status (1)

Country Link
CN (1) CN102857547B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103078944B (zh) * 2013-01-08 2016-04-06 赛凡信息科技(厦门)有限公司 基于分布式对称文件系统的数据中心架构
CN103703747A (zh) * 2013-08-13 2014-04-02 华为技术有限公司 互联网内容存储方法和设备
CN104618450B (zh) * 2015-01-04 2018-05-22 中国科学院计算技术研究所 一种WLAN的Web缓存系统和方法
CN105591874B (zh) * 2015-12-22 2020-10-13 新华三技术有限公司 一种数据发送方法及装置
CN108664211A (zh) * 2017-03-31 2018-10-16 深圳市中兴微电子技术有限公司 一种实现数据读写的方法及装置
CN107623722A (zh) * 2017-08-21 2018-01-23 云宏信息科技股份有限公司 一种远端数据缓存方法、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1981501A (zh) * 2004-03-12 2007-06-13 汤姆森许可公司 调度内容文件的分发的方法和缓存服务器网络
CN101938508A (zh) * 2009-07-01 2011-01-05 中国电信股份有限公司 对等网络流媒体直播系统中延时减小的方法和系统
CN102143212A (zh) * 2010-12-31 2011-08-03 华为技术有限公司 一种内容分发网络中缓存共享的方法及装置
CN102202418A (zh) * 2011-02-23 2011-09-28 华为技术有限公司 业务建立的方法、业务提供的方法、设备及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1981501A (zh) * 2004-03-12 2007-06-13 汤姆森许可公司 调度内容文件的分发的方法和缓存服务器网络
CN101938508A (zh) * 2009-07-01 2011-01-05 中国电信股份有限公司 对等网络流媒体直播系统中延时减小的方法和系统
CN102143212A (zh) * 2010-12-31 2011-08-03 华为技术有限公司 一种内容分发网络中缓存共享的方法及装置
CN102202418A (zh) * 2011-02-23 2011-09-28 华为技术有限公司 业务建立的方法、业务提供的方法、设备及系统

Also Published As

Publication number Publication date
CN102857547A (zh) 2013-01-02

Similar Documents

Publication Publication Date Title
US11194719B2 (en) Cache optimization
CN102857547B (zh) 分布式缓存的方法及设备
US10027712B2 (en) System and method for distributed load balancing with distributed direct server return
CN102523314B (zh) 识别高效的目标服务器的方法和装置
US8892768B2 (en) Load balancing apparatus and load balancing method
US8898331B2 (en) Method, network and computer program for processing a content request
US9204180B2 (en) Method, server and terminal for audio and video on demand
CN109804605B (zh) 压缩转发表
US9660938B2 (en) Two-stage port-channel resolution in a multistage fabric switch
CN106790675A (zh) 一种集群内负载均衡方法、设备和系统
CN101729425B (zh) Vrrp组网中流量发送的方法及设备
CN109040243B (zh) 一种报文处理方法及装置
EP3614650B1 (en) Separation of forwarding plane and control plane of cgn
CN104980482A (zh) 文件发送方法及装置、文件接收方法及装置
CN113196725A (zh) 对使用全局网络地址的分布式端点的负载平衡式访问
CN101997822A (zh) 一种流媒体内容分发方法、系统和设备
CN103455439A (zh) 本地缓存装置以及用于提供内容缓存服务的系统和方法
CN103001964A (zh) 一种局域网环境下的缓存加速方法
CN110545230B (zh) 用于转发vxlan报文的方法和装置
CN106899564A (zh) 一种登录方法和装置
CN106797384A (zh) 以不同的协议将请求路由到集群中的相同端点
CN102572012A (zh) 一种消息处理方法、交换机及系统
CN112398754B (zh) 数据传输方法、装置、介质、电子设备及网络接入设备
US20220368669A1 (en) Filtering and organizing process for domain name system query collection
CN107888643A (zh) 一种udp负载均衡方法、装置和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200615

Address after: Room 201, building 2, No. 100, Zhujiang Road, high tech Zone, Wuxi City, Jiangsu Province

Patentee after: Suzhou Qibang Power Information Technology Co.,Ltd.

Address before: 518000 Baoan District Xin'an street, Shenzhen, Guangdong, No. 625, No. 625, Nuo platinum Plaza,

Patentee before: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

Effective date of registration: 20200615

Address after: 518000 Baoan District Xin'an street, Shenzhen, Guangdong, No. 625, No. 625, Nuo platinum Plaza,

Patentee after: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right