内容分发方法、装置、存储介质和电子设备
文献发布时间:2023-06-19 13:27:45
技术领域
本发明涉及智能设备领域,具体而言,涉及一种内容分发方法、装置、存储介质和电子设备。
背景技术
现有技术中,在内容分发的过程中,如果用户向边缘节点获取目标资源,而边缘节点没有缓存该目标资源的情况下,则边缘节点需要向源站或中层获取目标资源,然后下发给用户。而如果所有的资源都向源站或中层获取,会提高带宽的分发成本。
发明内容
本发明实施例提供了一种内容分发方法、装置、存储介质和电子设备,以至少解决内容分发过程中的分发成本高的技术问题。
根据本发明实施例的一个方面,提供了一种内容分发方法,应用于调度中心,包括:获取目标边缘节点发送的目标缓存请求,其中,上述目标缓存请求用于请求将源站或中层中的目标资源缓存到上述目标边缘节点中;向上述目标边缘节点发送目标缓存指令,其中,上述目标缓存指令用于指示上述目标边缘节点向第一边缘节点获取上述目标资源,上述第一边缘节点为预先请求过上述目标资源的边缘节点。
根据本发明实施例的另一方面,还提供了一种内容分发方法,应用于边缘节点,包括:向调度中心发送目标缓存请求,其中,上述目标缓存请求用于请求将源站或中层中的目标资源缓存到目标边缘节点中;接收上述调度中心返回的目标缓存指令,其中,上述目标缓存指令用于指示上述目标边缘节点向第一边缘节点获取上述目标资源,上述第一边缘节点为预先请求过上述目标资源的边缘节点。
根据本发明实施例的又一方面,提供了一种内容分发装置,应用于调度中心,包括:获取单元,用于获取目标边缘节点发送的目标缓存请求,其中,上述目标缓存请求用于请求将源站或中层中的目标资源缓存到上述目标边缘节点中;第一发送单元,用于向上述目标边缘节点发送目标缓存指令,其中,上述目标缓存指令用于指示上述目标边缘节点向第一边缘节点获取上述目标资源,上述第一边缘节点为预先请求过上述目标资源的边缘节点。
作为一种可选的示例,上述装置还包括:第一记录单元,用于在获取目标边缘节点发送的目标缓存请求之前,在获取到请求缓存上述源站或中层中的任意一个资源的缓存请求的情况下,将请求上述资源的边缘节点的节点信息记录到上述资源的访问记录中。
作为一种可选的示例,上述装置还包括:第二发送单元,用于在获取目标边缘节点发送的目标缓存请求之后,在上述目标资源的访问记录中未包括任意一个边缘节点的节点信息的情况下,向上述目标边缘节点发送第一缓存指令,其中,上述第一缓存指令用于指示上述目标边缘节点从上述源站或中层缓存上述目标资源;第二记录单元,用于将上述目标边缘节点的节点信息记录到上述目标资源的访问记录中。
作为一种可选的示例,上述装置还包括:第三发送单元,用于在获取目标边缘节点发送的目标缓存请求之后,在上述目标资源的访问记录中未包括任意一个边缘节点的节点信息的情况下,向第二边缘节点发送第二缓存指令并向上述目标边缘节点发送第三缓存指令,其中,上述第二缓存指令用于指示上述第二边缘节点从上述源站或中层获取上述目标资源,上述第三缓存指令用于指示上述目标边缘节点从上述第二边缘节点获取上述目标资源,上述目标边缘节点从上述第二边缘节点获取上述目标资源所消耗的带宽的成本小于第一阈值;第三记录单元,用于将上述第二边缘节点的节点信息与上述目标边缘节点的节点信息记录到上述目标资源的访问记录中。
作为一种可选的示例,上述第一发送单元包括:选择模块,用于在上述目标资源的访问记录指示存在多个边缘节点访问过上述目标资源的情况下,从上述多个边缘节点中选择一个边缘节点作为上述第一边缘节点。
作为一种可选的示例,上述选择模块包括:第一确定子模块,用于将上述多个边缘节点中,距离上述目标边缘节点最近的边缘节点作为上述第一边缘节点。
作为一种可选的示例,上述选择模块包括:第二确定子模块,用于将上述多个边缘节点中,负载最小的边缘节点作为上述第一边缘节点。
作为一种可选的示例,上述获取单元包括:获取模块,用于获取上述目标缓存请求中的上述目标资源的域名、URL地址和上述目标边缘节点的节点信息。
根据本发明实施例的又一方面,提供了一种内容分发装置,应用于边缘节点,包括:发送单元,用于向调度中心发送目标缓存请求,其中,上述目标缓存请求用于请求将源站或中层中的目标资源缓存到目标边缘节点中;第一接收单元,用于接收上述调度中心返回的目标缓存指令,其中,上述目标缓存指令用于指示上述目标边缘节点向第一边缘节点获取上述目标资源,上述第一边缘节点为预先请求过上述目标资源的边缘节点。
作为一种可选的示例,上述调度中心还用于在获取到请求缓存上述源站或中层中的任意一个资源的缓存请求的情况下,将请求上述资源的边缘节点的节点信息记录到上述资源的访问记录中,上述装置还包括:第二接收单元,用于在向调度中心发送目标缓存请求之后,在上述目标资源的访问记录中未包括任意一个边缘节点的节点信息的情况下,接收上述调度中心发送的第一缓存指令,其中,上述第一缓存指令用于指示上述目标边缘节点从上述源站或中层缓存上述目标资源;第一缓存单元,用于响应上述第一缓存指令,向上述源站或中层请求缓存上述目标资源。
作为一种可选的示例,上述调度中心还用于在获取到请求缓存上述源站或中层中的任意一个资源的缓存请求的情况下,将请求上述资源的边缘节点的节点信息记录到上述资源的访问记录中,上述装置还包括:第三接收单元,用于在向调度中心发送目标缓存请求之后,在上述目标资源的访问记录中未包括任意一个边缘节点的节点信息的情况下,接收上述调度中心发送的第三缓存指令,其中,上述第三缓存指令用于指示上述目标边缘节点从第二边缘节点获取上述目标资源,上述目标边缘节点从上述第二边缘节点获取上述目标资源所消耗的带宽的成本小于第一阈值,上述调度中心还用于向第二边缘节点发送第二缓存指令,上述第二缓存指令用于指示上述第二边缘节点从上述源站或中层获取上述目标资源;第二缓存单元,用于响应上述第三缓存指令,从上述第二边缘节点获取上述目标资源。
根据本发明实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述内容分发方法。
根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过上述计算机程序执行上述的内容分发方法。
在本发明实施例中,采用了获取目标边缘节点发送的目标缓存请求,其中,上述目标缓存请求用于请求将源站或中层中的目标资源缓存到上述目标边缘节点中;向上述目标边缘节点发送目标缓存指令,其中,上述目标缓存指令用于指示上述目标边缘节点向第一边缘节点获取上述目标资源,上述第一边缘节点为预先请求过上述目标资源的边缘节点的方法,由于在上述方法中,在用户向边缘节点获取目标资源而边缘节点没有缓存该目标资源的情况下,该边缘节点可以向其他请求过该目标资源的边缘节点获取该目标资源,而不需要从源站或中层获取该目标资源,从而实现了降低内容分发网络的分发成本的效果,进而解决了内容分发网络的分发成本高的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的内容分发方法的流程图;
图2是根据本发明实施例的一种可选的内容分发方法的内容分发架构图;
图3是根据本发明实施例的另一种可选的内容分发方法的内容分发架构图;
图4是根据本发明实施例的一种可选的内容分发方法的访问记录示意图;
图5是根据本发明实施例的一种可选的内容分发方法的系统流程图;
图6是根据本发明实施例的另一种可选的内容分发方法的系统流程图;
图7是根据本发明实施例的另一种可选的内容分发方法的流程图;
图8是根据本发明实施例的又一种可选的内容分发方法的流程图;
图9是根据本发明实施例的一种可选的内容分发装置的结构示意图;
图10是根据本发明实施例的另一种可选的内容分发装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的第一方面,提供了一种内容分发方法,应用于调度中心,可选地,如图1所示,上述方法包括:
S102,获取目标边缘节点发送的目标缓存请求,其中,目标缓存请求用于请求将源站或中层中的目标资源缓存到目标边缘节点中;
S104,向目标边缘节点发送目标缓存指令,其中,目标缓存指令用于指示目标边缘节点向第一边缘节点获取目标资源,第一边缘节点为预先请求过目标资源的边缘节点。
可选地,本实施例中,内容分发网络(Content Delivery Network,简称为CDN)。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器(边缘节点),通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
CDN的全局调度系统,将用户的访问请求调度到CDN边缘节点。用户访问到CDN边缘节点之后,如果当前访问资源已经存在节点上,那么节点会直接返回内容给用户,如果访问资源不在节点上,则边缘节点会回源站拉取内容,返回给用户的同时把内存缓存在边缘节点上,下一次对此资源的访问则会直接直接返回。为了减少对源站的压力,可以设置多个缓存层。实现多级缓存和回源收敛的目的。如图2所示,图2为一种可选的CDN的示意图。图2中,用户向边缘节点1获取目标资源,边缘节点1中并未缓存目标资源,因此,边缘节点1可以向中层1获取目标资源。如果中层1没有目标资源,则向源站获取目标资源,最后将目标资源下发给用户。
可选地,本实施例中,目标边缘节点可以为CDN边缘节点中的任意一个边缘节点。目标边缘节点接收到用户请求目标资源的请求后,如果自身没有目标资源,则需要获取目标资源。本实施例中,目标边缘节点可以向调度中心发送目标缓存请求,而调度中心在获取到目标边缘节点发送的目标缓存请求后,可以确定目标资源被哪些边缘节点请求过。然后,将请求过目标资源的第一边缘节点的节点信息下发给目标边缘节点,由目标边缘节点向第一边缘节点获取目标资源。
可选地,本实施例中,目标资源的类型不做限定。可以为视频、音频、图片、文本、文件等的任意一种或者任意多种的组合。
可选地,本实施例中的边缘节点可以根据需要设置在不同的位置。边缘节点可以与源站或中层可以进行数据的上传和下载。用户可以通过访问就近的边缘节点获取需要的数据。源站或中层或边缘节点可以为服务器。
如图3所示,图3中,用户向边缘节点1请求目标资源时,调度中心获取目标缓存请求,并向边缘节点1返回目标缓存指令,边缘节点1从边缘节点2获取目标资源并下发给用户。
通过本实施例,通过上述方法,从而在用户向边缘节点获取目标资源而边缘节点没有缓存该目标资源的情况下,该边缘节点可以向其他请求过该目标资源的边缘节点获取该目标资源,而不需要从源站或中层获取该目标资源,实现了降低内容分发网络的分发成本的效果。
作为一种可选的实施方式,在获取目标边缘节点发送的目标缓存请求之前,方法还包括:
在获取到请求缓存源站或中层中的任意一个资源的缓存请求的情况下,将请求资源的边缘节点的节点信息记录到资源的访问记录中。
可选地,本实施例中,调度中心可以记录边缘节点访问每一个资源的访问记录。如果任意一个边缘节点访问了源站或中层的一个资源,则对应记录下该边缘节点访问该资源的记录。
可选地,本实施例中,可以为被访问的资源建立一个访问记录表,在访问记录表中记录下访问该资源的边缘节点的节点信息。节点信息可以为边缘节点的节点唯一标志。
例如,如图4所示,图4为一种可选的边缘节点的访问记录。源站或中层中的目标资源1被边缘节点1到边缘节点3访问后,在调度中心中记录有目标资源1的被访问的访问记录。而边缘节点3请求目标资源2,在调度中心中记录目标资源2的被访问的访问记录。图4仅为一种示例,并不是对本申请的目标资源的访问记录的限定。
作为一种可选的实施方式,在获取目标边缘节点发送的目标缓存请求之后,方法还包括:
在目标资源的访问记录中未包括任意一个边缘节点的节点信息的情况下,向目标边缘节点发送第一缓存指令,其中,第一缓存指令用于指示目标边缘节点从源站或中层缓存目标资源;
将目标边缘节点的节点信息记录到目标资源的访问记录中。
可选地,本实施例中,上述的目标边缘节点可以从请求过目标资源的第一边缘节点获取目标资源。但是,如果目标资源没有被任意一个边缘节点请求过,则调度中心无法为目标边缘节点返回第一边缘节点。因为,没有任何一个边缘节点可以作为第一边缘节点。此时,调度中心可以向目标边缘节点返回第一缓存指令。目标边缘节点在接收到第一缓存指令的情况下,向源站或中层获取目标资源。流程图如图5的步骤S502到S512所示。用户向边缘节点请求目标资源,边缘节点中没有目标资源,则边缘节点向调度中心发送目标缓存请求。而调度中心确定出没有任何一个边缘节点访问过目标资源。因此,向边缘节点返回第一缓存指令,由边缘节点向源站或中层获取目标资源,并将目标资源返回给用户。调度中心可以将边缘节点的节点信息保存到目标资源的访问记录中。
作为一种可选的实施方式,在获取目标边缘节点发送的目标缓存请求之后,方法还包括:
在目标资源的访问记录中未包括任意一个边缘节点的节点信息的情况下,向第二边缘节点发送第二缓存指令并向目标边缘节点发送第三缓存指令,其中,第二缓存指令用于指示第二边缘节点从源站或中层获取目标资源,第三缓存指令用于指示目标边缘节点从第二边缘节点获取目标资源,目标边缘节点从第二边缘节点获取目标资源所消耗的带宽的成本小于第一阈值;
将第二边缘节点的节点信息与目标边缘节点的节点信息记录到目标资源的访问记录中。
可选地,在本实施例中,上述的目标边缘节点可以从请求过目标资源的第一边缘节点获取目标资源。但是,如果目标资源没有被任意一个边缘节点请求过,则调度中心无法为目标边缘节点返回第一边缘节点。因为,没有任何一个边缘节点可以作为第一边缘节点。此时,调度中心可以从所有的边缘节点中选择出一个边缘节点作为第二边缘节点,并将第二边缘节点的节点信息返回给目标边缘节点,由目标边缘节点向第二边缘节点获取目标资源。当然,第二边缘节点由于并未访问过目标资源,因此,自身可能并未存储目标资源。所以第二边缘节点需要先从源站或者中层获取目标资源后,由目标边缘节点从第二边缘节点获取目标资源。调度中心会将第二边缘节点和目标边缘节点的节点信息均记录到目标资源的访问记录中。流程图可以如图6的步骤S602到S616所示。用户向目标边缘节点请求目标资源,而目标边缘节点并未缓存目标资源,目标边缘节点向调度中心发送目标缓存请求,调度中心确定出没有任何一个边缘节点访问过目标资源。则调度中心向目标边缘节点发送第三缓存指令,并向第二边缘节点发送第二缓存指令。第二边缘节点是调度中心确定出的边缘节点。目标边缘节点从第二边缘节点获取目标资源所消耗的带宽的成本小于第一阈值。第二边缘节点从源站或中层获取目标资源,然后目标边缘节点从第二边缘节点获取目标资源,将目标资源返回给用户。
作为一种可选的实施方式,向目标边缘节点发送目标缓存指令包括:
在目标资源的访问记录指示存在多个边缘节点访问过目标资源的情况下,从多个边缘节点中选择一个边缘节点作为第一边缘节点。
可选地,本实施例中,上述的目标边缘节点可以从请求过目标资源的第一边缘节点获取目标资源。而如果请求过目标资源的边缘节点有多个,则调度中心可以从多个请求过目标资源的边缘节点中选择一个边缘节点作为第一边缘节点。
作为一种可选的实施方式,从多个边缘节点中选择一个边缘节点作为第一边缘节点包括:
将多个边缘节点中,距离目标边缘节点最近的边缘节点作为第一边缘节点。
可选地,本实施例中,当请求过目标资源的边缘节点有多个的情况下,调度中心选择一个边缘节点作为目标边缘节点时,可以获取每一个请求过目标资源的边缘节点与目标边缘节点的距离,并将距离最小的边缘节点作为第一边缘节点,由目标边缘节点向第一边缘节点获取目标资源。
作为一种可选的实施方式,从多个边缘节点中选择一个边缘节点作为第一边缘节点包括:
将多个边缘节点中,负载最小的边缘节点作为第一边缘节点。
可选地,本实施例中,当请求过目标资源的边缘节点有多个的情况下,调度中心选择一个边缘节点作为目标边缘节点时,可以获取每一个请求过目标资源的边缘节点的当前负载情况,负载越大,说明边缘节点越忙碌。将负载最小的边缘节点作为第一边缘节点,由目标边缘节点向第一边缘节点获取目标资源。
作为一种可选的实施方式,获取目标边缘节点发送的目标缓存请求包括:
获取目标缓存请求中的目标资源的域名、URL地址和目标边缘节点的节点信息。
可选地,本实施例中,目标边缘节点将目标资源的域名、URL地址携带在目标缓存请求中,由调度中心根据域名、URL地址来确定目标边缘节点所要请求的目标资源。并将目标边缘节点的节点信息记录到访问目标资源的访问记录中。
本实施例的架构如图3,本实施例以及其他回源的请求都是资源没有命中目标资源的情况下发生的,用户向边缘节点请求目标资源,边缘节点查询目标资源,资源命中时直接返回目标资源。如果边缘节点没有目标资源,则当一个请求访问到边缘节点的时候,节点上的服务程序向调度中心发起询问请求,请求时携带域名,访问URL,以及请求节点名等关键信息。调度中心根据请求信息会返回2种状态,一个是指向其他节点的302应答,本实施例中的302指http协议中一种特殊状态,用来实现跳转功能。另一个是没有找到资源信息的未找到资源信息应答,服务程序收到这两种应答之后,根据不同的应答状态码分别做出不同的行为。或者响应302应答向其他节点获取内容,如图3的4路线。或者按照的回源路径回中层或源站获取内容。
调度中心会记录所有资源的访问信息,存储检索和应答。当一个请求访问调度中心时候,不管这个资源有没有被其他节点访问过,调度中心都会把此次请求记录下来,并且认为此节点一定会缓存这个资源的内容,原因就是此次访问不管返回什么状态码,这个节点都会获取到内容缓存下来并且应答给用户。这也是调度中心数据的来源,可以认为,调度中心的数据是请求触发的,不同请求越多,存储的数据也就越多。
图7是调度中心处理的流程,请求过来时,先检查请求参数是否合法,如果不合法,则直接返回指示不合法的代码。如果请求没有问题,则根据请求资源访问数据库,确认此资源是否有过访问,如果有访问,则根据算法从已经访问过的节点中选择一个节点,封装成302应答,返回给请求方。如果资源没有节点访问,那么直接返回未找到资源信息应答代码。不管返回的是302应答还是未找到资源信息应答,都需要做一件事情,把此次访问的节点追加到此资源的访问列表里,以便下一个请求能从访问过的节点请求内容。
举例说明,调度中心收到一个请求,资源是http://abc.com/1.txt,请求节点是nncm01,由于是第一次访问,所以调度中心中关于http://abc.com/1.txt这个资源的访问节点列表是空,所以调度中心直接返回XXX代码,同时把节点nncm01放入到资源的访问列表里。然后又来一个请求,仍然访问http://abc.com/1.txt,请求节点是nncm02,调度中心根据此资源的访问列表得知之前有nncm01访问过,且当前只有这一个节点,所以直接把nncm01节点信息组装成302应答http:://{nncm01的ip}/abc.com/1.txt,返回给nncm02。这样,nncm02就会根据302应答向nncm01获取内容,而不是去中层获取内容了。与此同时,调度中心会把nncm02也加入到http://abc.com/1.txt的访问列表里。此时此资源的访问列表里有nncm01,nncm02两个节点信息了。如果还有其他节点过来访问此资源,调度中心则会返回nncm01,nncm02两个节点中的一个给新节点,同时把新节点加入到访问列表中。
带宽收益说明,假定一个请求带宽是1M,回源到中层时候,产生1M的带宽,付费带宽就是1M。采用本发明后,这个请求被转移到了其他边缘节点,也就是边缘节点带宽增加了1M,但是中层带宽减少了1M。如果边缘带宽的付费带宽是100M(不管到不到100M,都需要按100M付费),如果增加的1M没有使得付费带宽超过100M,那么这次转移收益100%,如果让计费带宽增加了0.5M,即边缘付费带宽为100.5M了,那么此次收益为(1-0.5/1)=50%,极端情况下,付费带宽增加1M成为101M,那么此次转移收益为0。根据实际情况来看,边缘付费带宽大部分是跑不满的,所以多数情况下,带宽收益是肯定的。另外再加上策略控制手段,收益的空间还可以放大。
由于调度中心可以控制返回302应答,所以本实施例还可以在调度中心确定出没有任何一个边缘节点请求过目标资源的情况下,让调度中心向目标边缘节点返回第二边缘节点时,主动返回成本低的第二边缘节点的节点信息(比如城域网,其他非主流节点)。主动把请求引导到成本低的节点上,第二边缘节点向源站或中层获取目标资源,目标边缘节点向第二边缘节点获取目标资源。结合带宽调整策略,节点选择算法等手段灵活控制请求的走向,实现降低成本,提高非主流节点利用率等目的。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本申请实施例的另一方面,还提供了一种内容分发方法,应用于边缘节点,如图8所示,包括:
S802,向调度中心发送目标缓存请求,其中,目标缓存请求用于请求将源站或中层中的目标资源缓存到目标边缘节点中;
S804,接收调度中心返回的目标缓存指令,其中,目标缓存指令用于指示目标边缘节点向第一边缘节点获取目标资源,第一边缘节点为预先请求过目标资源的边缘节点。
可选地,本实施例中,内容分发网络(Content Delivery Network,简称为CDN)。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器(边缘节点),通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
CDN的全局调度系统,将用户的访问请求调度到CDN边缘节点。用户访问到CDN边缘节点之后,如果当前访问资源已经存在节点上,那么节点会直接返回内容给用户,如果访问资源不在节点上,则边缘节点会回源站拉取内容,返回给用户的同时把内存缓存在边缘节点上,下一次对此资源的访问则会直接直接返回。为了减少对源站的压力,可以设置多个缓存层。实现多级缓存和回源收敛的目的。如图2所示,图2为一种可选的CDN的示意图。图2中,用户向边缘节点1获取目标资源,边缘节点1中并未缓存目标资源,因此,边缘节点1可以向中层1获取目标资源。如果中层1没有目标资源,则向源站获取目标资源,最后将目标资源下发给用户。
可选地,本实施例中,目标边缘节点可以为CDN边缘节点中的任意一个边缘节点。目标边缘节点接收到用户请求目标资源的请求后,如果自身没有目标资源,则需要获取目标资源。本实施例中,目标边缘节点可以向调度中心发送目标缓存请求,而调度中心在获取到目标边缘节点发送的目标缓存请求后,可以确定目标资源被哪些边缘节点请求过。然后,将请求过目标资源的第一边缘节点的节点信息下发给目标边缘节点,由目标边缘节点向第一边缘节点获取目标资源。
可选地,本实施例中,目标资源的类型不做限定。可以为视频、音频、图片、文本、文件等的任意一种或者任意多种的组合。
可选地,本实施例中的边缘节点可以根据需要设置在不同的位置。边缘节点可以与源站或中层可以进行数据的上传和下载。用户可以通过访问就近的边缘节点获取需要的数据。源站或中层或边缘节点可以为服务器。
如图3所示,图3中,用户向边缘节点1请求目标资源时,调度中心获取目标缓存请求,并向边缘节点1返回目标缓存指令,边缘节点1从边缘节点2获取目标资源并下发给用户。
通过本实施例,通过上述方法,从而在用户向边缘节点获取目标资源而边缘节点没有缓存该目标资源的情况下,该边缘节点可以向其他请求过该目标资源的边缘节点获取该目标资源,而不需要从源站或中层获取该目标资源,实现了降低内容分发网络的分发成本的效果。
本实施例的其他示例请参见上述示例,在此不再赘述。
根据本申请实施例的又一方面,还提供了一种内容分发装置,应用于调度中心,如图9所示,包括:
获取单元902,用于获取目标边缘节点发送的目标缓存请求,其中,目标缓存请求用于请求将源站或中层中的目标资源缓存到目标边缘节点中;
第一发送单元904,用于向目标边缘节点发送目标缓存指令,其中,目标缓存指令用于指示目标边缘节点向第一边缘节点获取目标资源,第一边缘节点为预先请求过目标资源的边缘节点。
可选地,本实施例中,内容分发网络(Content Delivery Network,简称为CDN)。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器(边缘节点),通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
CDN的全局调度系统,将用户的访问请求调度到CDN边缘节点。用户访问到CDN边缘节点之后,如果当前访问资源已经存在节点上,那么节点会直接返回内容给用户,如果访问资源不在节点上,则边缘节点会回源站拉取内容,返回给用户的同时把内存缓存在边缘节点上,下一次对此资源的访问则会直接直接返回。为了减少对源站的压力,可以设置多个缓存层。实现多级缓存和回源收敛的目的。如图2所示,图2为一种可选的CDN的示意图。图2中,用户向边缘节点1获取目标资源,边缘节点1中并未缓存目标资源,因此,边缘节点1可以向中层1获取目标资源。如果中层1没有目标资源,则向源站获取目标资源,最后将目标资源下发给用户。
可选地,本实施例中,目标边缘节点可以为CDN边缘节点中的任意一个边缘节点。目标边缘节点接收到用户请求目标资源的请求后,如果自身没有目标资源,则需要获取目标资源。本实施例中,目标边缘节点可以向调度中心发送目标缓存请求,而调度中心在获取到目标边缘节点发送的目标缓存请求后,可以确定目标资源被哪些边缘节点请求过。然后,将请求过目标资源的第一边缘节点的节点信息下发给目标边缘节点,由目标边缘节点向第一边缘节点获取目标资源。
可选地,本实施例中,目标资源的类型不做限定。可以为视频、音频、图片、文本、文件等的任意一种或者任意多种的组合。
可选地,本实施例中的边缘节点可以根据需要设置在不同的位置。边缘节点可以与源站或中层可以进行数据的上传和下载。用户可以通过访问就近的边缘节点获取需要的数据。源站或中层或边缘节点可以为服务器。
如图3所示,图3中,用户向边缘节点1请求目标资源时,调度中心获取目标缓存请求,并向边缘节点1返回目标缓存指令,边缘节点1从边缘节点2获取目标资源并下发给用户。
通过本实施例,通过上述方法,从而在用户向边缘节点获取目标资源而边缘节点没有缓存该目标资源的情况下,该边缘节点可以向其他请求过该目标资源的边缘节点获取该目标资源,而不需要从源站或中层获取该目标资源,实现了降低内容分发网络的分发成本的效果。
本实施例的其他示例请参见上述示例,在此不再赘述。
根据本申请实施例的又一方面,还提供了一种内容分发装置,应用于边缘节点,如图10所示,包括:
发送单元1002,用于向调度中心发送目标缓存请求,其中,目标缓存请求用于请求将源站或中层中的目标资源缓存到目标边缘节点中;
第一接收单元1004,用于接收调度中心返回的目标缓存指令,其中,目标缓存指令用于指示目标边缘节点向第一边缘节点获取目标资源,第一边缘节点为预先请求过目标资源的边缘节点。
可选地,本实施例中,内容分发网络(Content Delivery Network,简称为CDN)。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器(边缘节点),通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
CDN的全局调度系统,将用户的访问请求调度到CDN边缘节点。用户访问到CDN边缘节点之后,如果当前访问资源已经存在节点上,那么节点会直接返回内容给用户,如果访问资源不在节点上,则边缘节点会回源站拉取内容,返回给用户的同时把内存缓存在边缘节点上,下一次对此资源的访问则会直接直接返回。为了减少对源站的压力,可以设置多个缓存层。实现多级缓存和回源收敛的目的。如图2所示,图2为一种可选的CDN的示意图。图2中,用户向边缘节点1获取目标资源,边缘节点1中并未缓存目标资源,因此,边缘节点1可以向中层1获取目标资源。如果中层1没有目标资源,则向源站获取目标资源,最后将目标资源下发给用户。
可选地,本实施例中,目标边缘节点可以为CDN边缘节点中的任意一个边缘节点。目标边缘节点接收到用户请求目标资源的请求后,如果自身没有目标资源,则需要获取目标资源。本实施例中,目标边缘节点可以向调度中心发送目标缓存请求,而调度中心在获取到目标边缘节点发送的目标缓存请求后,可以确定目标资源被哪些边缘节点请求过。然后,将请求过目标资源的第一边缘节点的节点信息下发给目标边缘节点,由目标边缘节点向第一边缘节点获取目标资源。
可选地,本实施例中,目标资源的类型不做限定。可以为视频、音频、图片、文本、文件等的任意一种或者任意多种的组合。
可选地,本实施例中的边缘节点可以根据需要设置在不同的位置。边缘节点可以与源站或中层可以进行数据的上传和下载。用户可以通过访问就近的边缘节点获取需要的数据。源站或中层或边缘节点可以为服务器。
如图3所示,图3中,用户向边缘节点1请求目标资源时,调度中心获取目标缓存请求,并向边缘节点1返回目标缓存指令,边缘节点1从边缘节点2获取目标资源并下发给用户。
通过本实施例,通过上述方法,从而在用户向边缘节点获取目标资源而边缘节点没有缓存该目标资源的情况下,该边缘节点可以向其他请求过该目标资源的边缘节点获取该目标资源,而不需要从源站或中层获取该目标资源,实现了降低内容分发网络的分发成本的效果。
本实施例的其他示例请参见上述示例,在此不再赘述。
根据本发明实施例的又一方面,还提供了一种用于实施上述内容分发方法的电子设备,该电子设备可以包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为通过计算机程序执行上述的内容分发方法中的步骤。
根据本发明的实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被处理器运行时执行上述内容分发方法中的步骤。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
- 内容分发处理方法、装置、电子设备及存储介质
- 内容分发处理方法、装置、电子设备及存储介质