一种缓存节点调度方法、装置及设备、介质与流程

文档序号:33621138发布日期:2023-03-25 11:53阅读:54来源:国知局
一种缓存节点调度方法、装置及设备、介质与流程

1.本技术涉及内容分发网络技术领域,特别是涉及一种缓存节点调度方法、装置及设备、介质。


背景技术:

2.利用内容分发网络(cdn,content delivery network)中的各个不同层级的缓存节点,可以将距离用户较远的源站资源缓存到距离用户更近的缓存节点中,使得用户在请求某个资源时,可以就近获取资源,从而达到减少源站压力,提高访问速度的目的。
3.然而,当由于机器割接和资源调整等原因而使得边缘层缓存节点的父层缓存节点发生变动(即边缘层缓存节点发生父层节点切换)时,会出现回源突增的情况,影响了正常业务请求的执行效率,降低了缓存节点的服务性能。


技术实现要素:

4.鉴于上述问题,本技术实施例提供了一种缓存节点调度方法、装置及设备、介质,以便克服上述问题或者至少部分地解决上述问题。
5.本技术实施例的第一方面,提供了一种缓存节点调度方法,应用于边缘层缓存节点,所述方法包括:接收针对目标资源的请求;对所述目标资源进行域名系统dns解析,得到第一解析结果,并从缓存中获取第二解析结果,所述第二解析结果为之前对所述目标资源进行dns解析所得到的dns解析结果;在所述第一解析结果和所述第二解析结果不相同的情况下,根据所述第一解析结果确定第一父层缓存节点,并根据所述第二解析结果确定第二父层缓存节点;在所述第一父层缓存节点与所述第二父层缓存节点不相同的情况下,向所述第一父层缓存节点发送携带了所述第二父层缓存节点的信息的资源请求,以使所述第一父层缓存节点从所述第二父层缓存节点中获取所述目标资源,并将所述目标资源返回至所述边缘层缓存节点。
6.本技术实施例的第二方面,提供了一种缓存节点调度方法,应用于边缘层缓存节点进行父层节点切换后的父层缓存节点,所述方法包括:接收所述边缘层缓存节点的资源请求,所述资源请求携带第一节点的信息,所述第一节点为所述边缘层缓存节点进行父层节点切换前的父层缓存节点;根据配置的预取头部、以及所述第一节点的信息,生成并向所述第一节点发送预取请求;接收所述第一节点针对所述预取请求返回的目标资源,并将所述目标资源返回至所述边缘层缓存节点。
7.本技术实施例的第三方面,提供了一种缓存节点调度方法,应用于边缘层缓存节点进行父层节点切换前的父层缓存节点,所述方法包括:
接收第三节点的预取请求,所述第三节点为所述边缘层缓存节点进行父层节点切换后的父层缓存节点;在缓存了所述预取请求对应的目标资源的情况下,向所述第三节点返回所述目标资源,以使所述第三节点将所述目标资源返回至所述边缘层缓存节点;在没有缓存所述预取请求对应的目标资源的情况下,向所述第三节点返回异常状态码,以使所述第三节点进行回源或回父。
8.本技术实施例的第四方面,提供了一种缓存节点调度装置,应用于边缘层缓存节点,所述装置包括:请求接收模块,用于接收针对目标资源的请求;dns解析模块,用于对所述目标资源进行dns解析,得到第一解析结果,并从缓存中获取第二解析结果,所述第二解析结果为之前对所述目标资源进行dns解析所得到的dns解析结果;节点确定模块,用于在所述第一解析结果和所述第二解析结果不相同的情况下,根据所述第一解析结果确定第一父层缓存节点,并根据所述第二解析结果确定第二父层缓存节点;资源请求模块,用于在所述第一父层缓存节点与所述第二父层缓存节点不相同的情况下,向所述第一父层缓存节点发送携带了所述第二父层缓存节点的信息的资源请求,以使所述第一父层缓存节点从所述第二父层缓存节点中获取所述目标资源,并将所述目标资源返回至所述边缘层缓存节点。
9.本技术实施例的第五方面,提供了一种缓存节点调度装置,应用于边缘层缓存节点进行父层节点切换后的父层缓存节点,所述装置包括:第一接收模块,用于接收所述边缘层缓存节点的资源请求,所述资源请求携带第一节点的信息,所述第一节点为所述边缘层缓存节点进行父层节点切换前的父层缓存节点;第一生成模块,用于根据配置的预取头部、以及所述第一节点的信息,生成并向所述第一节点发送预取请求;第一传输模块,用于接收所述第一节点针对所述预取请求返回的目标资源,并将所述目标资源返回至所述边缘层缓存节点。
10.本技术实施例的第六方面,提供了一种缓存节点调度装置,应用于边缘层缓存节点进行父层节点切换前的父层缓存节点,所述装置包括:预取请求接收模块,用于接收第三节点的预取请求,所述第三节点为所述边缘层缓存节点进行父层节点切换后的父层缓存节点;第一响应模块,用于在缓存了所述预取请求对应的目标资源的情况下,向所述第三节点返回所述目标资源,以使所述第三节点将所述目标资源返回至所述边缘层缓存节点;第二响应模块,用于在没有缓存所述预取请求对应的目标资源的情况下,向所述第三节点返回异常状态码,以使所述第三节点进行回源或回父。
11.本技术实施例的第七方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所
述的缓存节点调度方法的步骤或实现如第二方面所述的缓存节点调度方法的步骤或实现如第三方面所述的缓存节点调度方法的步骤。
12.本技术实施例的第八方面,提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现如第一方面所述的缓存节点调度方法的步骤或实现如第二方面所述的缓存节点调度方法的步骤或实现如第三方面所述的缓存节点调度方法的步骤。
13.本技术实施例的第九方面,提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如第一方面所述的缓存节点调度方法的步骤或实现如第二方面所述的缓存节点调度方法的步骤或实现如第三方面所述的缓存节点调度方法的步骤。
14.本技术实施例包括以下优点:本实施例中,边缘层缓存节点根据第一解析结果和第二解析结果,可以在进行父层节点切换之后,及时找到可能缓存有目标资源的第二父层缓存节点,并通过向第一父层缓存节点发送携带有该第二父层缓存节点的信息的资源请求,使得第一父层缓存节点能够向该第二父层缓存节点进行资源预取,从而减少边缘层缓存节点进行父层节点切换之后的回源次数,避免因回源突增而对正常业务请求的执行效率造成的影响,进而提高缓存节点的服务性能。
附图说明
15.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
16.图1是现有的一致性哈希方案的实施流程图图2是本技术实施例中一种缓存节点调度方法的实施流程图;图3是本技术实施例的一种缓存节点调度方法的实现过程的示意图;图4是本技术实施例中另一种缓存节点调度方法的实施流程图;图5是本技术实施例中再一种缓存节点调度方法的实施流程图;图6是本技术实施例的一种缓存节点调度装置的结构示意图;图7是本技术实施例的另一种缓存节点调度装置的结构示意图;图8是本技术实施例的再一种缓存节点调度装置的结构示意图;图9是本技术实施例中一种电子设备的示意图。
具体实施方式
17.为使本技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本技术作进一步详细的说明。
18.在cdn系统中,多层级的结构设计使得边缘层缓存节点和其父层缓存节点都会缓存资源。用户在获取资源时,如果能够命中边缘层缓存节点或者父层缓存节点的资源,就可以直接获取到相应的资源,故较高的缓存命中率是cdn系统维持正常服务的要求。如果cdn
系统的资源命中率较低,则会对源站造成较大的压力,影响对用户的业务请求的正常执行,严重时会导致cdn系统的服务故障。
19.现有的cdn系统主要采用一致性哈希方案,以保证较高的资源命中率。如图1所示,在用户的业务请求(即针对某一资源的请求)到达边缘层缓存节点时,边缘层缓存节点在未缓存该目标资源或该目标资源的缓存时间超出存活时间时,可以向其父层缓存节点请求该目标资源。如果在该边缘层缓存节点关联的配置文件中,对其父层缓存节点采用了域名的配置方式,则边缘层缓存节点可以根据从域名系统(dns,domain name system)中获取到的dns解析结果,构造包含该目标资源所关联的各个父层缓存节点的域名和ip的一致性哈希环(可简称为哈希环),并根据该目标资源所对应域名在一致性哈希环中的哈希(hash)值,得到对应的ip并去相应的父层缓存节点获取该目标资源。
20.可以理解的是,在边缘层缓存节点的父层缓存节点未发生变动时,该边缘层缓存节点获取到的dns解析结果通常不变,故通过dns解析结果所构建的一致性哈希环,可以使边缘层缓存节点向某一特定父层缓存节点(即指定父层机器)获取特定资源,从而提高资源命中率。
21.边缘层缓存节点在每次重新回父层缓存节点获取资源(如资源的缓存时间超出配置的存活时间)时,需要把之前建立的一致性哈希环对应的暂存信息删除,并做重新初始化(如重新获取dns解析结果并构建一致性哈希环),使得边缘层缓存节点在其父层缓存节点发生切换时,能够根据新的dns解析结果,构建新的一致性哈希环,从而向新的父层缓存节点获取资源。
22.基于上述一致性哈希方案,每个资源通常仅会缓存在边缘层缓存节点的一个父层缓存节点中。然而,随着业务量的增加,边缘层缓存节点的父层缓存节点也会不断扩容,而当由于机器割接和资源调整等原因导致父层缓存节点变动时,包含父层缓存节点信息的dns解析结果也会随之更新。边缘层缓存节点在根据该新的dns解析结果获取资源时,可能会向未缓存该资源的父层缓存节点获取资源,从而发生回源突增的情况,以致影响了正常业务请求执行的效率,且降低了cdn系统中缓存设备的服务性能。
23.针对上述相关技术中存在的问题,本技术提出了一种缓存节点调度方法,在原有一致性哈希方案的基础上增加了自动化的缓存节点调度,使得边缘层缓存节点因dns解析结果发生变化而向新的父层缓存节点获取资源时,该新的父层缓存节点可以先向可能缓存有该资源的父层缓存节点进行资源预取,从而减少边缘层缓存节点进行父层节点切换之后的回源次数,避免因回源突增而对正常业务请求的执行效率造成影响,进而提高缓存节点的服务性能。
24.下面结合附图,通过一些实施例及其应用场景对本技术实施例提供的缓存节点调度方法进行详细地说明。
25.第一方面,参照图2所示,为本技术实施例所提供的一种缓存节点调度方法的实施流程图,应用于边缘层缓存节点,该方法可以包括以下步骤:步骤s11:接收针对目标资源的请求。
26.在具体实施时,该边缘层缓存节点可以与用户的客户端直接连接,此时该针对目标资源的请求即为客户端发出的业务请求,该边缘层缓存节点也可以是其它边缘层缓存节点的上层缓存节点(即父层缓存节点),此时该针对目标资源的请求可以是其下层缓存节点
发出的回父相关请求、也可以是其同层级缓存节点发出的用于预取资源的预取请求。
27.步骤s12:对所述目标资源进行dns解析,得到第一解析结果,并从缓存中获取第二解析结果,所述第二解析结果为之前对所述目标资源进行dns解析所得到的dns解析结果。
28.可以理解的是,对于边缘层缓存节点当前接收到的针对目标资源的请求,该第一解析结果为:边缘层缓存节点在接收到该请求之后,对该目标资源进行dns解析所得到的dns解析结果;该第二解析结果为:边缘层缓存节点在接收到该请求之前,对该目标资源进行dns解析所得到的dns解析结果,该之前对该目标资源进行dns解析所得到的dns解析结果被边缘层缓存节点缓存在内存中。
29.在具体实施时,边缘层缓存节点在接收到针对目标资源的请求之后,会针对该目标资源向dns查询各个父层缓存节点(即父层节点)的信息(如父层缓存节点的域名和ip),得到第一解析结果,并从该边缘层缓存节点的缓存中或dns的缓存中,获取之前针对该目标资源向dns查询得到的各个父层缓存节点的信息,得到第二解析结果。
30.步骤s13:在所述第一解析结果和所述第二解析结果不相同的情况下,根据所述第一解析结果确定第一父层缓存节点,并根据所述第二解析结果确定第二父层缓存节点。
31.可以理解的是,dns解析结果(如第一解析结果和第二解析结果)可能包含多个ip,故边缘层缓存节根据dns解析结果确定父层缓存节点的过程主要包含了对ip的筛选过程,即边缘层缓存节点会根据获取到的dns解析结果进行ip筛选,以找到合适的父层缓存节点的ip(如资源命中率较高的父层缓存节点的ip)去获取目标资源。
32.在具体实施时,考虑到父层节点切换前目标资源对应的父层缓存节点(即第二父层缓存节点或下述第一节点)有较大可能缓存了该目标资源,故边缘层缓存节点通过比较第一解析结果和第二解析结果,可以感知到自身的父层节点是否进行过切换,以便在第一解析结果和第二解析结果不相同(即父层节点进行过切换)的情况下,及时根据该第二解析结果,确定出父层节点切换前该目标资源对应的父层缓存节点,并根据该第一解析结果,确定出父层节点切换后该目标资源对应的父层缓存节点(即第一父层缓存节点或下述第三节点)。
33.步骤s14:在所述第一父层缓存节点与所述第二父层缓存节点不相同的情况下,向所述第一父层缓存节点发送携带了所述第二父层缓存节点的信息的资源请求,以使所述第一父层缓存节点从所述第二父层缓存节点中获取所述目标资源,并将所述目标资源返回至所述边缘层缓存节点。
34.可以理解的是,父层节点切换前后,边缘层缓存节点根据dns解析结果(即第一解析结果和第二解析结果),确定出的部分资源对应的父层缓存节点可能未发生变动(即第一父层缓存节点与第二父层缓存节点相同),说明在父层节点切换后,边缘层缓存节点仍可命中该部分资源,故无需对该部分资源进行资源预取。
35.考虑到在第一父层缓存节点与第二父层缓存节点不相同的情况下,若边缘层缓存节点直接回父至该第一父层缓存节点获取目标资源,由于该第一父层缓存节点、以及该第一父层缓存节点进行回父的父层缓存节点可能均未缓存该目标资源,以致该边缘层缓存节点最终需要从源站获取该目标资源,从而造成父层节点切换后回源突增的情况。
36.故本技术中的边缘层缓存节点在父层缓存节点发生切换时,会先发出携带了目标资源对应的旧父层缓存节点(即第二父层缓存节点)的信息的资源请求,以调度目标资源对
应的新父层缓存节点(即第一父层缓存节点)去旧父层缓存节点获取该目标资源,从而减少父层缓存节点切换后的回源次数。
37.采用本技术实施例的技术方案,边缘层缓存节点根据第一解析结果和第二解析结果,可以在进行父层节点切换之后,及时找到可能缓存有目标资源的第二父层缓存节点,并通过向第一父层缓存节点发送携带有该第二父层缓存节点的信息的资源请求,使得第一父层缓存节点能够向该第二父层缓存节点进行资源预取,从而减少边缘层缓存节点进行父层节点切换之后的回源次数,避免因回源突增而对正常业务请求的执行效率造成的影响,进而提高缓存节点的服务性能。
38.以下结合图3,对上述技术方案作进一步说明。如图3所示,本技术实施例提供了一种缓存节点调度方法的实现过程,包括:(1)边缘层缓存节点判断dns解析结果是否有不同或是否有已经在进行的预取请求。
39.在具体实施时,边缘层缓存节点进行父层节点切换时,dns会对应缓存父层节点切换后相关父层缓存节点的信息,每当边缘层缓存节点接收到针对某一资源(即目标资源)的请求时,会向dns请求该目标资源当前所关联的各个父层缓存节点的信息,得到dns解析结果,从而完成对该目标资源的dns解析。
40.在得到该目标资源当前所对应的dns解析结果(即第一解析结果)之后,边缘层缓存节点将第一解析结果和之前向dns请求得到的dns解析结果(即第二解析结果)进行比较,若第一解析结果和第二解析结果不相同,则说明边缘层缓存节点的父层缓存节点发生了变动(即边缘层缓存节点进行了父层节点切换),其中,该之前向dns请求得到的dns解析结果可以保存在边缘层缓存节点关联的数据库(如hostdb)中。
41.作为一种可能的实施方式,考虑到边缘层缓存节点可能会在短时间内频繁进行父层节点切换,此时边缘层缓存节点为找到有较大可能缓存了目标资源的父层缓存节点,需要获取到该时间段内第一次进行父层节点切换前相关父层缓存节点的信息,故可以在边缘层缓存节点的配置文件中添加最小切换时间(即第一目标时间),以限制边缘层缓存节点对之前向dns请求得到的dns解析结果的更新。
42.示例性地,边缘层缓存节点每次进行父层节点切换时,dns会对应缓存父层节点切换前后相关父层缓存节点的信息。在某一时间段内,边缘层缓存节点进行第一次父层节点切换之后,边缘层缓存节点将缓存从dns中获取到的目标资源对应的第一历史解析结果(包含该次父层节点切换前相关父层缓存节点的信息),并从配置文件中获取配置的第一目标时间。
43.在该第一历史解析结果的缓存时间未超出所述第一目标时间的情况下,边缘层缓存节点可以将该第一历史解析结果直接确定为第二解析结果。可以理解的是,在该第一目标时间之内,无论该边缘层缓存节点进行过多少次父层节点切换,都将使用第一次父层节点切换前相关父层缓存节点的信息作为第二解析结果(即对旧哈希环等更新进行限制),以确定出更有可能缓存了目标资源的旧父层缓存节点。
44.在所述第一历史解析结果的缓存时间超出所述第一目标时间,且从所述dns中重新获取到的所述目标资源对应的第二历史解析结果与所述第一历史解析结果不同的情况下,将所述第二历史解析结果确定为所述第二解析结果。
45.可以理解的是,为减少确定出的旧父层缓存节点为不可用的节点(如已完成机器割接并被删除的节点),在经过该第一目标时间之后,若边缘层缓存节点再次进行父层节点切换,且使得该次父层节点切换前相关父层缓存节点的信息(即第二历史解析结果)与第一历史解析结果不同时,则边缘层缓存节点可以利用该第二历史解析结果更新缓存的第一历史解析结果,便于边缘层缓存节点使用该第二历史解析结果作为第二解析结果,以确定可用的旧父层缓存节点。
46.需要说明的是,边缘层缓存节点对于每次进行父层节点切换后得到的历史解析结果(如上述第一历史解析结果和第二历史解析结果)的缓存时间可以不受存活时间的限制,如边缘层缓存节点可以在每次进行父层节点切换后仅获取并缓存一次历史解析结果,并在后续任意的时间内从缓存中取用该历史解析结果。也可以在边缘层缓存节点的配置文件中添加对应的存活时间,以使边缘层缓存节点根据该存活时间向dns多次获取历史解析结果。
47.例如,在边缘层缓存节点进行一次父层节点切换之后,边缘层缓存节点缓存从dns中获取到的目标资源对应的第三历史解析结果(即dns当前缓存中父层节点切换前相关父层缓存节点的信息),根据配置文件确定该第三历史解析结果是否配置了存活时间。在第三历史解析结果配置了存活时间的情况下,边缘层缓存节点根据该存活时间从dns中周期性地获取所述目标资源对应的第三历史解析结果,并利用每次新获取到的第三历史解析结果覆盖上一次缓存的所述目标资源对应的第三历史解析结果。在每次获取第二解析结果时,边缘层缓存节点会将当前缓存的所述第三历史解析结果,确定为所述第二解析结果。
48.可以理解的是,根据配置的触发历史解析结果获取的条件的不同(如边缘层缓存节点可以被配置为:在第三历史解析结果的缓存时间超过存活时间,且收到了针对目标资源的请求时,才重新获取该目标资源对应的第三历史解析结果,或边缘层缓存节点可以被配置为:在第三历史解析结果的缓存时间超过存活时间时,重新获取该目标资源对应的第三历史解析结果),边缘层缓存节点相邻两次获取第三历史解析结果的相隔时间可以相同也可以不同。
49.(2)在dns解析结果有不同或有已经在进行的预取请求的情况下,边缘层缓存节点向对应的新父层缓存节点发送携带了对应的旧父层缓存节点的信息的资源请求;在dns解析结果相同或没有已经在进行的预取请求的情况下,边缘层缓存节点仍然向对应的旧父层缓存节点获取目标资源。
50.在具体实施时,dns解析结果相同或没有已经在进行的预取请求,则说明边缘层缓存节点回父的具体节点未变化,此时边缘层缓存节点可以正常向对应的父层缓存节点(相当于后续父层节点切换后对应的旧父层)直接获取目标资源。
51.在dns解析结果有不同或有已经在进行的预取请求的情况下,边缘层缓存节点可以根据父层节点切换前后对应的dns解析结果(即第一解析结果和第二解析结果)构建第一哈希环和第二哈希环,并根据第一哈希环和第二哈希环中目标资源对应域名的hash值,分别得到新父层缓存节点(即第一父层缓存节点)和旧父层缓存节点(即第二父层缓存节点)的信息(如ip和端口)。其中,上述第二哈希环在建立后可以保存在dns和/或边缘缓存节点的缓存中,以便后续随时取用。
52.如果从第一哈希环和第二哈希环中得到的目标资源对应域名的hash值不同,和/或新父层缓存节点和旧父层缓存节点的信息不同,则说明父层缓存节点的变动影响到了边
缘层缓存节点回父的具体节点,则边缘层缓存节点向对应的新父层缓存节点发送携带了对应的旧父层缓存节点的信息的资源请求,以调度新父层缓存节点进行资源预取。
53.作为一种可能的实施方式,可以在边缘层缓存节点的配置文件中添加回父的有效时间(即第二目标时间),以限制边缘层缓存节点在感知到父层节点切换后,通过携带请求头(即第二父层缓存节点的信息)的资源请求调度新父层缓存节点进行资源预取的持续时间。
54.示例性地,边缘层缓存节点可以获取配置的第二目标时间,在边缘层缓存节点进行父层节点切换之后的第二目标时间内,向第一父层缓存节点发送携带了第二父层缓存节点的信息的资源请求,其中,该第二父层缓存节点的信息可以包括第二父层缓存节点的ip和端口。
55.(3)新父层缓存节点接收携带了对应的旧父层缓存节点的信息的资源请求,生成并向该旧父层缓存节点发送预取请求。
56.在具体实施时,新父层缓存节点在处理边缘层机器发出的资源请求时,会检测该资源请求是否携带了请求头,如果携带了请求头,且新父层缓存节点未缓存该资源请求对应的目标资源,会先向该请求头中ip对应的缓存节点进行资源预取。
57.示例性地,边缘层缓存节点进行父层节点切换后的父层缓存节点(即新父层缓存节点)接收边缘层缓存节点的资源请求,该资源请求携带第一节点(即旧父层缓存节点)的信息;新父层缓存节点根据配置的预取头部、以及所述第一节点的信息,生成并向所述第一节点发送预取请求,其中,该配置的预取头部可以为“ctr-pre-request:yes”字段,表示该请求为预取请求,而该新父层缓存节点的其它请求(如回父的相关请求)可以添加“ctr-pre-request:no”字段,表示该请求为非预取请求;新父层缓存节点接收第一节点针对所述预取请求返回的目标资源,并将该目标资源返回至边缘层缓存节点。
58.作为一种可能的实施方式,考虑到边缘层缓存节点进行父层节点切换后,旧父层缓存节点可能存在停止服务的情况,此时新父层缓存节点向旧父层缓存节点进行任意资源的预取都会得到异常状态码,若新父层缓存节点不断对该旧父层缓存节点重试请求,则会极大地降低资源请求效率。故新父层缓存节点在向第一节点获取资源失败(如收到针对任意资源的预取请求的异常状态码)的情况下,将所述第一节点的信息(如ip)标记为不可用信息,即该不可用信息表征了所述边缘层节点之前向所述第一节点获取资源失败时,所标记的所述第一节点的信息;并在每次需要向该第一节点预取资源前,先判断该第一节点的信息是否属于不可用信息,在第一节点的信息不属于不可用信息的情况下,根据配置的预取头部、以及所述第一节点的信息,生成并向所述第一节点发送预取请求。
59.示例性地,新父层缓存节点可以判断接收到的资源请求所携带的旧父层缓存节点的ip是否可用,如果不可用则不会向该旧父层缓存节点进行资源预取,而是按照该新父层缓存节点关联的配置文件进行回源和回父。
60.(4)旧父层缓存节点接收预取请求,并向新父层缓存节点返回该预取请求对应的目标资源,该新父层缓存节点随后将该目标资源返回至对应的边缘层缓存节点。
61.在具体实施时,旧父层缓存节点接收第三节点(即新父层缓存节点)的预取请求,并查询自身是否缓存该预取请求对应的目标资源。在缓存了所述预取请求对应的目标资源的情况下,旧父层缓存节点向第三节点返回正常状态码和目标资源,以使第三节点将目标
资源返回至所述边缘层缓存节点;在没有缓存预取请求对应的目标资源的情况下,旧父层缓存节点向第三节点返回异常状态码,以使所述第三节点进行回源或回父。其中,回父是指:第三节点从自身的父层缓存节点中直接获取到目标资源;回源是指:第三节点的父层缓存节点未缓存该目标资源(或没有该目标资源的有效缓存),需要先由该第三节点的父层缓存节点继续向上层缓存节点获取目标资源(若上层的各层级缓存节点均无该目标资源的情况下,会最终从源站获取到目标资源)之后,第三节点再从该父层缓存节点中获取到目标资源。
62.第三节点在收到异常状态码后,不会对该旧父层缓存节点进行多次预取资源的重试,以避免因多次重试造成的链路变长,并删除该预取请求中携带的预取头部和该旧父层缓存节点的信息,以生成回父相关请求并将其发送至回父的相关节点(即二层父缓存节点),避免该回父的相关节点由于收到预取头部和该旧父层缓存节点的信息进行额外的资源预取。
63.作为一种可能的实施方式,在接收到的资源请求为分片请求的情况下,新父层缓存节点获取所述资源请求所对应分片的缓存统一资源定位器(url,uniform resource locator),根据配置的预取头部、缓存url、以及旧父层缓存节点的信息,生成并向旧父层缓存节点发送所述对应分片的预取请求。
64.可以理解的是,考虑到边缘层缓存节点可能根据接收到的针对目标资源的请求,生成多个分片请求,每个分片请求用于请求该目标资源的一个分片。而在现有的cdn系统中,缓存节点会利用针对索引片(如目标资源的第一个分片)的查询结果响应目标资源对应的任意分片请求,也即是说,新父层缓存节点根据接收到的任意分片请求生成预取请求,并将该预取请求发送至旧父层缓存节点之后,旧父层缓存节点会查询自身是否缓存了该预取请求对应的目标资源的索引片,在旧父层缓存节点未缓存该预取请求对应的分片,但缓存了该索引片的情况下,旧父层缓存节点仍会向该新父层缓存节点返回正常的状态码,但此时新父层缓存节点无法从旧父层缓存节点获取到对应的分片,也不会进行回源或回父,从而导致新父层缓存节点和边缘层缓存节点缓存了错误的资源。
65.为了避免出现上述缓存错误资源的情况,本技术中的新父层缓存节点会将接收到的分片请求中的缓存url(即图3中所指的ctl-chash-key头部)添加到预取请求中,旧父层缓存节点根据该缓存url可以直接查询自身是否缓存了该预取请求对应的分片,从而跳过分片插件的操作(即旧父层缓存节点不会使用针对索引片的查询结果响应针对分片的预取请求),使得新父层缓存节点可以通过接收到的状态码知晓分片在旧父层缓存节点中的实际缓存情况,并能够及时进行回源或回父,从而避免出现缓存错误的问题。
66.基于上述实施例,本技术在基于现有一致性哈希回父的方案下,将父层节点切换前后的dns解析结果进行对比,通过边缘层节点、新父层缓存节点和旧父层缓存节点之间的信息交互,实现对cdn系统中各个缓存节点的调度,且通过同层缓存节点在组间预取资源,可以获得父层节点切换前旧父层缓存节点的缓存,并且可以适应完整请求和分片请求,无需增加其他配置,解决了原方案逻辑中在父层节点切换后会造成回源突增的问题,可以适应短时间内多次切换父层节点的情况,无需手动增加父层缓存节点平摊资源的缓存,完成了自动化的缓存节点调度。
67.第二方面,参照图4所示,为本技术实施例所提供的另一种缓存节点调度方法的实
施流程图,应用于边缘层缓存节点进行父层节点切换后的父层缓存节点,该方法可以包括以下步骤:步骤s21:接收所述边缘层缓存节点的资源请求,所述资源请求携带第一节点的信息,所述第一节点为所述边缘层缓存节点进行父层节点切换前的父层缓存节点;步骤s22:根据配置的预取头部、以及所述第一节点的信息,生成并向所述第一节点发送预取请求;步骤s23:接收所述第一节点针对所述预取请求返回的目标资源,并将所述目标资源返回至所述边缘层缓存节点。
68.采用本技术实施例的技术方案,边缘层缓存节点根据第一解析结果和第二解析结果,可以在进行父层节点切换之后,及时找到可能缓存有目标资源的第二父层缓存节点,并通过向第一父层缓存节点发送携带有该第二父层缓存节点的信息的资源请求,使得第一父层缓存节点能够向该第二父层缓存节点进行资源预取,从而减少边缘层缓存节点进行父层节点切换之后的回源次数,避免因回源突增而对正常业务请求的执行效率造成的影响,进而提高缓存节点的服务性能。
69.作为一种可能的实施方式,所述根据配置的预取头部、以及所述第一节点的信息,生成并向所述第一节点发送预取请求,包括:判断所述第一节点的信息是否属于不可用信息,所述不可用信息用于表征:所述边缘层节点之前向所述第一节点获取资源失败时所标记的所述第一节点的信息;在所述第一节点的信息不属于不可用信息的情况下,根据配置的预取头部、以及所述第一节点的信息,生成并向所述第一节点发送预取请求。
70.作为一种可能的实施方式,所述根据配置的预取头部、以及所述第一节点的信息,生成并向所述第一节点发送预取请求,包括:在所述资源请求为分片请求的情况下,获取所述资源请求所对应分片的缓存统一资源定位器url;根据配置的预取头部、所述缓存url、以及所述第一节点的信息,生成并向所述第一节点发送所述对应分片的预取请求。
71.第三方面,参照图5所示,为本技术实施例所提供的再一种缓存节点调度方法的实施流程图,应用于边缘层缓存节点进行父层节点切换前的父层缓存节点,该方法可以包括以下步骤:步骤s31:接收第三节点的预取请求,所述第三节点为所述边缘层缓存节点进行父层节点切换后的父层缓存节点;步骤s32:在缓存了所述预取请求对应的目标资源的情况下,向所述第三节点返回所述目标资源,以使所述第三节点将所述目标资源返回至所述边缘层缓存节点;步骤s33:在没有缓存所述预取请求对应的目标资源的情况下,向所述第三节点返回异常状态码,以使所述第三节点进行回源或回父。
72.采用本技术实施例的技术方案,边缘层缓存节点根据第一解析结果和第二解析结果,可以在进行父层节点切换之后,及时找到可能缓存有目标资源的第二父层缓存节点,并通过向第一父层缓存节点发送携带有该第二父层缓存节点的信息的资源请求,使得第一父
层缓存节点能够向该第二父层缓存节点进行资源预取,从而减少边缘层缓存节点进行父层节点切换之后的回源次数,避免因回源突增而对正常业务请求的执行效率造成的影响,进而提高缓存节点的服务性能。
73.对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术实施例并不受所描述的动作顺序的限制,因为依据本技术实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本技术实施例所必须的。
74.第四方面,图6是本技术实施例的一种缓存节点调度装置的结构示意图,所述装置应用于边缘层缓存节点,该装置包括:请求接收模块,用于接收针对目标资源的请求;dns解析模块,用于对所述目标资源进行dns解析,得到第一解析结果,并从缓存中获取第二解析结果,所述第二解析结果为之前对所述目标资源进行dns解析所得到的dns解析结果;节点确定模块,用于在所述第一解析结果和所述第二解析结果不相同的情况下,根据所述第一解析结果确定第一父层缓存节点,并根据所述第二解析结果确定第二父层缓存节点;资源请求模块,用于在所述第一父层缓存节点与所述第二父层缓存节点不相同的情况下,向所述第一父层缓存节点发送携带了所述第二父层缓存节点的信息的资源请求,以使所述第一父层缓存节点从所述第二父层缓存节点中获取所述目标资源,并将所述目标资源返回至所述边缘层缓存节点。
75.采用本技术实施例的技术方案,边缘层缓存节点根据第一解析结果和第二解析结果,可以在进行父层节点切换之后,及时找到可能缓存有目标资源的第二父层缓存节点,并通过向第一父层缓存节点发送携带有该第二父层缓存节点的信息的资源请求,使得第一父层缓存节点能够向该第二父层缓存节点进行资源预取,从而减少边缘层缓存节点进行父层节点切换之后的回源次数,避免因回源突增而对正常业务请求的执行效率造成的影响,进而提高缓存节点的服务性能。
76.可选地,所述从缓存中获取第二解析结果之前,所述装置还包括:第一获取模块,用于在所述边缘层缓存节点进行父层节点切换之后,缓存从dns中获取到的所述目标资源对应的第一历史解析结果,并获取配置的第一目标时间;所述dns解析模块包括:第一解析子模块,用于在所述第一历史解析结果的缓存时间未超出所述第一目标时间的情况下,将所述第一历史解析结果确定为所述第二解析结果;第二解析子模块,用于在所述第一历史解析结果的缓存时间超出所述第一目标时间,且从所述dns中重新获取到的所述目标资源对应的第二历史解析结果与所述第一历史解析结果不同的情况下,将所述第二历史解析结果确定为所述第二解析结果。
77.可选地,所述从缓存中获取第二解析结果之前,所述装置还包括:第二获取模块,用于在所述边缘层缓存节点进行父层节点切换之后,缓存从dns中获取到的所述目标资源对应的第三历史解析结果;第三获取模块,用于在所述第三历史解析结果配置了存活时间的情况下,根据所
述存活时间周期性地更新缓存的所述目标资源对应的第三历史解析结果;所述dns解析模块包括:第三解析子模块,用于将所述边缘层缓存节点当前缓存的所述第三历史解析结果,确定为所述第二解析结果。
78.可选地,所述资源请求模块包括:第一资源请求子模块,用于获取配置的第二目标时间;第二资源请求子模块,用于在所述边缘层缓存节点进行父层节点切换之后的所述第二目标时间内,向所述第一父层缓存节点发送携带了所述第二父层缓存节点的信息的资源请求。
79.可选地,所述节点确定模块包括:第一确定模块,用于根据所述第一解析结果构建第一哈希环,并从所述边缘层缓存节点的缓存中获取所述第二解析结果对应的第二哈希环;第二确定模块,用于根据所述第一哈希环和所述第二哈希环,分别确定所述第一父层缓存节点和所述第二父层缓存节点。
80.第五方面,图7是本技术实施例的另一种缓存节点调度装置的结构示意图,所述装置应用于边缘层缓存节点进行父层节点切换后的父层缓存节点,该装置包括:第一接收模块,用于接收所述边缘层缓存节点的资源请求,所述资源请求携带第一节点的信息,所述第一节点为所述边缘层缓存节点进行父层节点切换前的父层缓存节点;第一生成模块,用于根据配置的预取头部、以及所述第一节点的信息,生成并向所述第一节点发送预取请求;第一传输模块,用于接收所述第一节点针对所述预取请求返回的目标资源,并将所述目标资源返回至所述边缘层缓存节点。
81.采用本技术实施例的技术方案,边缘层缓存节点根据第一解析结果和第二解析结果,可以在进行父层节点切换之后,及时找到可能缓存有目标资源的第二父层缓存节点,并通过向第一父层缓存节点发送携带有该第二父层缓存节点的信息的资源请求,使得第一父层缓存节点能够向该第二父层缓存节点进行资源预取,从而减少边缘层缓存节点进行父层节点切换之后的回源次数,避免因回源突增而对正常业务请求的执行效率造成的影响,进而提高缓存节点的服务性能。
82.可选地,所述第一生成模块包括:第一生成子模块,用于判断所述第一节点的信息是否属于不可用信息,所述不可用信息用于表征:所述边缘层节点之前向所述第一节点获取资源失败时所标记的所述第一节点的信息;第二生成子模块,用于在所述第一节点的信息不属于不可用信息的情况下,根据配置的预取头部、以及所述第一节点的信息,生成并向所述第一节点发送预取请求。
83.可选地,所述第一生成模块包括:第三生成子模块,用于在所述资源请求为分片请求的情况下,获取所述资源请求所对应分片的缓存统一资源定位器url;
第四生成子模块,用于根据配置的预取头部、所述缓存url、以及所述第一节点的信息,生成并向所述第一节点发送所述对应分片的预取请求。
84.第六方面,图8是本技术实施例的再一种缓存节点调度装置的结构示意图,所述装置应用于边缘层缓存节点进行父层节点切换前的父层缓存节点,该装置包括:预取请求接收模块,用于接收第三节点的预取请求,所述第三节点为所述边缘层缓存节点进行父层节点切换后的父层缓存节点;第一响应模块,用于在缓存了所述预取请求对应的目标资源的情况下,向所述第三节点返回所述目标资源,以使所述第三节点将所述目标资源返回至所述边缘层缓存节点;第二响应模块,用于在没有缓存所述预取请求对应的目标资源的情况下,向所述第三节点返回异常状态码,以使所述第三节点进行回源或回父。
85.采用本技术实施例的技术方案,边缘层缓存节点根据第一解析结果和第二解析结果,可以在进行父层节点切换之后,及时找到可能缓存有目标资源的第二父层缓存节点,并通过向第一父层缓存节点发送携带有该第二父层缓存节点的信息的资源请求,使得第一父层缓存节点能够向该第二父层缓存节点进行资源预取,从而减少边缘层缓存节点进行父层节点切换之后的回源次数,避免因回源突增而对正常业务请求的执行效率造成的影响,进而提高缓存节点的服务性能。
86.需要说明的是,装置实施例与方法实施例相近,故描述的较为简单,相关之处参见方法实施例即可。
87.本技术实施例还提供了一种电子设备,参照图9,图9是本技术实施例提出的电子设备的示意图。如图9所示,电子设备100包括:存储器110和处理器120,存储器110与处理器120之间通过总线通信连接,存储器110中存储有计算机程序,该计算机程序可在处理器120上运行,进而实现本技术实施例公开的缓存节点调度方法中的步骤。
88.本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现如本技术实施例公开的所述缓存节点调度方法。
89.本技术实施例还提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如本技术实施例公开的所述缓存节点调度方法。
90.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
91.本领域内的技术人员应明白,本技术实施例的实施例可提供为方法、装置或计算机程序产品。因此,本技术实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
92.本技术实施例是参照根据本技术实施例的方法、系统、设备、存储介质及程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的
指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
93.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
94.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
95.尽管已描述了本技术实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术实施例范围的所有变更和修改。
96.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
97.以上对本技术所提供的一种缓存节点调度方法、装置及设备、介质,进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1