CDN缓存方法、装置及电子设备与流程

文档序号:25230482发布日期:2021-05-28 14:37阅读:153来源:国知局
CDN缓存方法、装置及电子设备与流程

本发明涉及网络技术领域,具体而言,涉及一种cdn缓存方法、装置及电子设备。



背景技术:

通过内容分发网络(contentdeliverynetwork,cdn)加速客户端访问web服务的速度目前已经成为大多数http/https服务的选择。cdn可以通过部署在边缘网络上的反向代理服务器,就近为客户提供服务。cdn节点可以在靠近用户的服务器上存放相关资源文件,使得用户请求不需要从源站web服务器上获取资源,减少了源站的负载和用户的等待资源的时间。

但现有的在缓存方法在cdn节点本地没有对应缓存时,一个资源必须要在被请求一次后才能缓存。部分特殊情况(如整点秒杀)会产生大量的回源请求,cdn缓存的效果大打折扣,并且可能引起拒绝访问,同时还存在资源更新不及时等问题,当源站更新资源时,无法立即通知cdn更新相应的内容。



技术实现要素:

本发明的目的包括,例如,提供了一种cdn缓存方法、装置及电子设备,以改善现有的cdn缓存方法存在的缓存效率低、源站负荷大、及时性差等问题。

本发明的实施例可以这样实现:

第一方面,本发明提供一种cdn缓存方法,所述cdn缓存方法应用于cdn系统,所述cdn缓存方法包括:

每隔预设时间间隔获取缓存列表文件数据,所述缓存列表文件数据包括所述cdn系统需要缓存的资源url;

依据所述缓存列表文件数据以及所述cdn系统已缓存的资源确定待缓存资源url;

基于所述待缓存资源url向源站发起回源请求以将所述待缓存资源存储至所述cdn系统。

在可选的实施方式中,所述依据所述缓存列表文件数据以及所述cdn系统已缓存的资源确定待缓存资源url的步骤包括:

将所述cdn系统需要缓存的资源url与所述cdn系统已缓存资源url进行匹配;

若所述cdn系统需要缓存的资源url与所述cdn系统已缓存资源url不匹配,则将不匹配的所述需要缓存的资源url确定为所述待缓存资源url。

在可选的实施方式中,所述缓存列表文件数据还包括所述cdn系统需要缓存的资源url对应的附加参数,所述附加参数包括所述需要缓存的资源url的有效时间,所述依据所述缓存列表文件数据以及所述cdn系统已缓存的资源确定待缓存资源url的步骤还包括:

若所述cdn系统需要缓存的资源url与所述cdn系统已缓存资源url匹配,则根据所述需要缓存的资源url对应的有效时间确定所述已缓存资源url是否失效;

若所述cdn系统已缓存资源url已失效,则将与所述已缓存资源url匹配的所述需要缓存的资源url确定为所述待缓存资源url。

在可选的实施方式中,所述获取缓存列表文件数据的步骤包括:

每隔预设时间间隔访问预设url,以获取存储在源站的缓存列表文件数据。

在可选的实施方式中,所述cdn系统还包括深度学习模块,所述cdn系统通过所述深度学习模块向所述源站发起回源请求,所述方法还包括:

基于所述回源请求,根据最常访问资源算法确定最常访问的资源url,其中,所述回源请求包括待缓存资源url;

将所述最常访问的资源的url发送至相邻地区的cdn节点,以使所述cdn节点缓存所述待缓存资源。

第二方面,本发明提供一种cdn缓存装置,所述cdn缓存装置应用于如前述实施方式任意一项所述的cdn缓存方法,所述cdn缓存装置包括:

获取模块,用于每隔预设时间间隔获取缓存列表文件数据,所述缓存列表文件数据包括所述cdn系统需要缓存的资源url;

处理模块,用于依据所述缓存列表文件数据以及所述cdn系统已缓存的资源确定待缓存资源url;

缓存模块,用于基于所述待缓存资源url向源站发起回源请求以将所述待缓存资源存储至所述cdn系统。

在可选的实施方式中,所述处理模块用于将所述cdn系统需要缓存的资源url与所述cdn系统已缓存资源url进行匹配;若所述cdn系统需要缓存的资源url与所述cdn系统已缓存资源url不匹配,则将不匹配的所述需要缓存的资源url确定为所述待缓存资源url。

在可选的实施方式中,所述缓存列表文件数据还包括所述cdn系统需要缓存的资源url对应的附加参数,所述附加参数包括所述需要缓存的资源url的有效时间,所述处理模块还用于若所述cdn系统需要缓存的资源url与所述cdn系统已缓存资源url匹配,则根据所述需要缓存的资源url对应的有效时间确定所述已缓存资源url是否失效;若所述cdn系统已缓存资源url已失效,则将与所述已缓存资源url匹配的所述需要缓存的资源url确定为所述待缓存资源url。

在可选的实施方式中,所述获取模块用于每隔预设时间间隔访问预设url,以获取存储在源站的缓存列表文件数据。

第三方面,本发明提供一种电子设备,所述电子设备包括处理器,所述处理器用于执行计算机可读程序指令,该计算机可读程序指令被处理器执行时实现如前述实施方式任意一项所述的cdn缓存方法的步骤。

相对于现有技术,本申请提供的cdn缓存方法、装置及电子设备,在源站设置缓存列表文件数据,cdn系统每隔预设时间间隔获取缓存列表文件数据,所述缓存列表文件数据包括所述cdn系统需要缓存的资源url;依据所述缓存列表文件数据以及所述cdn系统已缓存的资源确定待缓存资源url;基于所述待缓存资源url向源站发起回源请求以将所述待缓存资源存储至所述cdn系统,不需要修改源站代码,只需增加一个文件列表,既能够通知cdn拉取尚未被用户访问的资源,提前缓存资源,一定程度上避免部分场景下因cdn节点没有资源引起的回源,还可以实时的更新网站的资源,防止源站已经更新,cdn节点没有更新,避免过期资源引起的回源操作。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本实施例提供的一种cdn缓存方法的流程示意图;

图2为本实施例提供的另一种cdn缓存方法的流程示意图;

图3为本实施例提供的另一种cdn缓存方法的流程示意图;

图4为本实施例提供的另一种cdn缓存方法的流程示意图;

图5为本实施例提供cdn缓存装置的功能模块示意图;

图6为本实施例提供的电子设备的示意图。

图标:300-cdn缓存装置;310-获取模块;320-处理模块;330-缓存模块;410-处理器;411-存储器;412-总线;413-通信接口。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。

通过cdn系统加速客户端访问web服务的速度目前已经成为大多数http/https服务的选择。cdn可以通过部署在边缘网络上的反向代理服务器,就近为客户提供服务。cdn节点可以在靠近用户的服务器上存放相关资源文件,使得用户请求不需要从源站web服务器上获取资源,减少了源站的负载和用户的等待资源的时间。但现有的在缓存方法在cdn节点本地没有对应缓存时,一个资源必须要在被请求一次后才能缓存。部分特殊情况(如整点秒杀)会产生大量的回源请求,cdn缓存的效果大打折扣,并且可能引起拒绝访问,同时还存在资源更新不及时等问题,当源站更新资源时,无法立即通知cdn更新相应的内容。

为了改善上述问题,本申请提供了一种cdn缓存方法,请参考图1,图1示出了本实施例提供的cdn缓存方法的流程示意图。本申请实施例提供的cdn缓存方法包括步骤210~步骤230。

步骤210:每隔预设时间间隔获取缓存列表文件数据,缓存列表文件数据包括cdn系统需要缓存的资源url。

cdn系统每隔预设时间间隔获取缓存列表文件数据,缓存列表文件存储有cdn系统需要缓存的资源url,获取该缓存列表文件数据,cdn系统即可获知需要缓存的资源url,以便进行缓存。

步骤220:依据缓存列表文件数据以及cdn系统已缓存的资源确定待缓存资源url。

依据获取的缓存列表文件数据以及该cdn系统已经缓存的资源,确定待缓存资源url,例如,根据缓存列表文件数据与cdn系统已经缓存的资源,确定cdn系统上不存在相应的缓存资源,则需要对该资源进行缓存;或者cdn系统上已经缓存的资源失效或者过期,也需要对失效或过期的已缓存资源进行重新缓存,以将有效的资源缓存至cdn系统中。

步骤230:基于待缓存资源url向源站发起回源请求以将待缓存资源存储至cdn系统。

根据该待缓存资源url,向源站发起回源请求,以将待缓存资源缓存至cdn系统。

本申请实施例提供的cdn缓存方法,通过定时访问获取缓存列表文件数据,cdn系统每隔预设时间间隔获取缓存列表文件数据,从而可以主动获取需要缓存的资源url,并根据待缓存资源url向源站发起回源请求,将相应的资源进行缓存。不需要修改源站代码,只需增加一个文件列表,既能够通知cdn拉取尚未被用户访问的资源,提前缓存资源,一定程度上避免部分场景下因cdn节点没有资源引起的回源,还可以实时的更新网站的资源,防止源站已经更新,cdn节点没有更新,避免过期资源引起的回源操作。

在步骤210之前,请参阅图2,该cdn缓存方法还包括:

步骤200:每隔预设时间间隔访问预设url,以获取存储在源站的缓存列表文件数据。

为了通知cdn系统哪些资源是需要更新的,可在源站web服务器增加1个缓存列表文件,记录需要缓存的文件,该文件可以通过外部url直接被cdn系统访问,文件的内容包括一系列的url,这些url是cdn系统需要缓存的资源。

在一些可能的实现方式中,作为可选配置,列表中可以添加一些诸如有效时长、过期时间、版本号、校验和等字段,方便cdn系统与已有的缓存内容做比较决定是否更新,基于这些选项周期性更新可以解决cdn系统可能有过期资源引起的不必要的回源操作。

cdn系统每隔预设时间间隔周期性的访问该文件,以获取缓存列表文件数据,分析列表的内容,按照文件列表的内容添加或者更新cdn系统的缓存文件。cdn系统解析该文件后,按照列表的中的url以及可选参数与系统内已有对应缓存资源进行查找比对,如果没有对应资源则添加,如果存在则根据可选参数判断是否需要更新。

获取缓存列表文件数据后,根据缓存列表文件数据以及已缓存资源确定待缓存资源url,下面对步骤220的实现方式进行介绍,在一些可能的实现方式中,请参阅图3,步骤220包括以下子步骤:

步骤220-1:将cdn系统需要缓存的资源url与cdn系统已缓存资源url进行匹配。

步骤220-2:若cdn系统需要缓存的资源url与cdn系统已缓存资源url不匹配,则将不匹配的需要缓存的资源url确定为待缓存资源url。

将获取的cdn系统需要缓存的资源url与已缓存资源url进行匹配,若cdn系统需要缓存的资源url已经存在已缓存资源url中,则表明该cdn系统已经缓存过相关的资源,若cdn系统需要缓存的资源url未存在已缓存资源url中,则表明cdn系统未缓存相关的资源,需要对相关的资源进行缓存,在这种情况下,将不匹配的需要缓存的资源url确定为待缓存资源url。

步骤220-3:若cdn系统需要缓存的资源url与cdn系统已缓存资源url匹配,则根据需要缓存的资源url对应的有效时间确定已缓存资源url是否失效。

在一种可能的实现方式中,缓存列表文件数据还包括所述cdn系统需要缓存的资源url对应的附加参数,附加参数包括所述需要缓存的资源url的有效时间,通过配置缓存列表文件数据url的附加参数可以控制缓存的过期时间,对于时间敏感较高的资源可以实现在已缓存资源尚未过期的情况下,通过修改上述列表中的附加参数使得cdn系统快速更新内容。此功能在紧急事件插播,直播,内容推送等场景能启动较好的效果。例如原本某网页头部设置的过期时间是1天,发生突发事件后需要立即更新这个文件,可以通过修改上述列表对应url的附加参数的有效时间或者更新频率来实现,cdn系统发现有效时间或者更新品类发生变化后,会立即更新缓存。

若cdn系统需要缓存的资源url已经存在已缓存资源url中,则表明该cdn系统已经缓存过相关的资源,在cdn系统已经缓存相关资源的情况下,还需要判断相关资源是否有效。例如,根据需要缓存的资源url对应的有效时间确定已缓存资源url是否失效。

步骤220-4:若cdn系统已缓存资源url已失效,则将与已缓存资源url匹配的需要缓存的资源url确定为待缓存资源url。

若已缓存资源url已经失效,或者即将失效,则将与该失效或即将失效的已缓存资源url匹配的需要缓存的资源url确定为待缓存资源url。

本申请实施例提供的cdn缓存方法,通过将缓存列表文件数据中的需要缓存的资源url与cdn已缓存资源url进行比对,确定出待缓资源url,同时可以利用缓存列表文件数据中的附加参数控制缓存的过期时间,对于时间敏感较高的资源可以实现在已缓存资源尚未过期的情况下,通过修改上述列表中的可选参数使得cdn快速更新内容,使cdn缓存更加高效及时。

此外,由于缓存列表文件的内容都是对外公开访问的url,所以不存在安全问题。如果用户认为此列表文件不允许cdn系统外的其他用户访问,可以设置使用内部ip,或设置访问规则只允许cdn系统的ip进行访问,此方法与已有的在客户端没有命中cdn缓存后去源站读取缓存,以及通过api向cdn推送缓存两种方法并不冲突,可以同时使用,是上述方法的补充。

为了进一步地提高cdn系统预先缓存相关资源的智能化,在一种可能的实现方式中,在cdn系统中设置一深度学习模块,cdn系统与源站之间的所有回源请求都经过该深度学习模块进行发起,利用该深度学习模块,判断近期访问趋势,检索mvr(mostvisitedresources,最常访问资源)排名靠前的资源的关键信息并进行学习,提取输出信息,匹配源站资源并将有较高优先级别(优先级别可以由资源的访问频率或关键字的命中数量等方式来决定)的资源从源站更新到相邻地区的cdn节点,请参阅图4,可选地,本实施例提供的cdn缓存方法还包括:

步骤240:基于回源请求,根据最常访问资源算法确定最常访问的资源url,其中,回源请求包括待缓存资源url。

深度学习模块根据cdn系统的回源请求,利用最常访问资源算法确定出最常访问资源url。

步骤250:将最常访问的资源的url发送至相邻地区的cdn节点,以使cdn节点缓存待缓存资源。

将最常访问url发送至相邻地区的cdn节点,使相邻的确的cdn节点也将最常访问的资源进行缓存。

为了执行上述实施例及各个可能的实施方式中的相应步骤,下面给出一种日志处理装置的实现方式,请参阅图5,图5为本发明较佳实施例提供的一种cdn缓存装置300。需要说明的是,本实施例所提供的cdn缓存装置300,其基本原理及产生的技术效果和上述实施例提供的cdn缓存方法基本相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。本实施例提供的cdn缓存装置300包括获取模块310、处理模块320及缓存模块330。

获取模块310,用于每隔预设时间间隔获取缓存列表文件数据,缓存列表文件数据包括cdn系统需要缓存的资源url。

可以理解地,在一种可能的实现方式中,该获取模块310可以用于执行上述各个图中的步骤210,以实现对应的技术效果。

处理模块320,用于依据缓存列表文件数据以及cdn系统已缓存的资源确定待缓存资源url。

可以理解地,在一种可能的实现方式中,该处理模块320可以用于执行上述各个图中的步骤220,以实现对应的技术效果。

缓存模块330,用于基于待缓存资源url向源站发起回源请求以将待缓存资源存储至cdn系统。

可以理解地,在一种可能的实现方式中,该缓存模块330可以用于执行上述各个图中的步骤230,以实现对应的技术效果。

处理模块320用于将cdn系统需要缓存的资源url与cdn系统已缓存资源url进行匹配;若cdn系统需要缓存的资源url与cdn系统已缓存资源url不匹配,则将不匹配的需要缓存的资源url确定为待缓存资源url。

缓存列表文件数据还包括cdn系统需要缓存的资源url对应的附加参数,附加参数包括需要缓存的资源url的有效时间,处理模块320还用于若cdn系统需要缓存的资源url与cdn系统已缓存资源url匹配,则根据需要缓存的资源url对应的有效时间确定已缓存资源url是否失效;若cdn系统已缓存资源url已失效,则将与已缓存资源url匹配的需要缓存的资源url确定为待缓存资源url。

获取模块310还用于每隔预设时间间隔访问预设url,以获取存储在源站的缓存列表文件数据。

可以理解地,获取模块310还用于执行上述各个图中的步骤210,以实现对应的技术效果。

在一种可能的实现方式中,所述cdn缓存装置300还包括深度学习模块(图未示),深度学习模块用于基于所述回源请求,根据最常访问资源算法确定最常访问的资源url,其中,所述回源请求包括待缓存资源url;深度学习模块还用于将所述最常访问的资源的url发送至相邻地区的cdn节点,以使所述cdn节点缓存所述待缓存资源。

本发明实施例还提供一种电子设备,该电子设备可以是cdn客户端。请参照图6,图6示出了本实施例提供的电子设备的结构示意图。电子设备包括处理器410、存储器411、总线412。处理器410、存储器411通过总线412连接,处理器410用于执行存储器411中存储的可执行模块,例如计算机可读程序指令,当该计算机可读程序指令被处理器410执行时实现上述实施例提供的cdn缓存方法的步骤。

处理器410可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本实施例提供的cdn缓存方法的各步骤可以通过处理器410中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器410可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessor,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

存储器411可能包含高速随机存取存储器(ram:randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。

总线412可以是isa(industrystandardarchitecture)总线、pci(peripheralcomponentinterconnect)总线或eisa(extendedindustrystandardarchitecture)总线等。图6中仅用一个双向箭头表示,但并不表示仅有一根总线412或一种类型的总线412。

存储器411用于存储程序,例如cdn缓存装置对应的程序指令。cdn缓存装置包括至少一个可以软件或固件(firmware)的形式存储于存储器411中或固化在电子设备的操作系统(operatingsystem,os)中的软件功能模块。处理器410在接收到执行指令后,执行所述程序以实现cdn缓存方法的步骤。

可能地,本申请实施例提供的电子设备还包括通信接口413。通信接口413通过总线与处理器410连接。该通信接口413可以用于实现cdn系统与源站之间的通信,向源站发起回源请求,并接收源站返回的资源数据。

应当理解的是,图6所示的结构仅为电子设备的部分的结构示意图,电子设备还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置,图6中所示的各组件可以采用硬件、软件或其组合实现。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1