CN112995251B - 一种回源方法、装置、电子设备及存储介质 - Google Patents

一种回源方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112995251B
CN112995251B CN201911282910.2A CN201911282910A CN112995251B CN 112995251 B CN112995251 B CN 112995251B CN 201911282910 A CN201911282910 A CN 201911282910A CN 112995251 B CN112995251 B CN 112995251B
Authority
CN
China
Prior art keywords
source
data
size
fragment
target
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
CN201911282910.2A
Other languages
English (en)
Other versions
CN112995251A (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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology 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 Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN201911282910.2A priority Critical patent/CN112995251B/zh
Publication of CN112995251A publication Critical patent/CN112995251A/zh
Application granted granted Critical
Publication of CN112995251B publication Critical patent/CN112995251B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例提供了一种回源方法、装置、电子设备及存储介质。该方法应用于CDN的缓存节点,该方法包括:在接收到数据请求的情况下,生成回源数据请求;获取基于预设的时刻与回源分片大小的对应关系,确定所述回源数据请求的生成时刻对应的目标回源分片大小;其中,所述对应关系中,每一时刻对应的回源分片大小与该时刻CDN的带宽利用率相匹配;基于所述目标回源分片大小,从目标节点中获取所述回源数据请求对应的回源数据;其中,所述目标节点为:所述缓存节点的上一层缓存节点或源站。与现有技术相比,应用本发明实施例提供的方案,能够适应不同时期CDN的带宽利用率需求。

Description

一种回源方法、装置、电子设备及存储介质
技术领域
本发明涉及计算机技术领域,特别是涉及一种回源方法、装置、电子设备及存储介质。
背景技术
当前,CDN(Content Delivery Network,内容分发网络)在解决网络拥挤问题,以及提高用户访问网站的响应速度等方面发挥着越来越重要的作用。在CDN存在多层缓存节点,该多层缓存节点从下到上依次为边缘节点、中层节点和上层节点,其中,边缘节点与用户客户端直连,上层节点与源站直连。
这样,当一缓存节点接收到与用户发送的网络请求对应的数据请求时,该缓存节点判断本地所缓存的数据中是否包括该数据请求所请求的全部数据。进而,当判断结果为否时,该缓存节点可以向上一层缓存节点或者源站进行回源。其中,当缓存节点为边缘节点时,该网络请求对应的数据请求为该网络请求,而当缓存节点为边缘节点以外的缓存节点时,该网络请求对应的数据请求用于该缓存节点的下一层缓存节点从该缓存节点中请求所缺失数据。
其中,所谓回源是指:缓存节点根据技术人员基于经验设定的回源分片和上述全部数据中本地所缺失的数据的数据范围生成数据请求,并将该数据请求发送至上一层缓存节点或者源站,以从上一层缓存节点或者源站获取到本次回源过程对应的回源数据。其中,所谓回源分片为:上一层缓存节点或源站向下一层缓存节点反馈回源数据时,每次所反馈的数据的数据量。
然而,在实际应用中,由于CDN具有流量高峰期和流量低峰期,例如, 19点-23点为流量高峰期,其他时间为流量低峰期等,因此,在流量高峰期和流量低峰期,CDN的带宽利用率差距较大。
基于此,如何适应不同时期CDN的带宽利用率需求,是亟待解决的问题。
发明内容
本发明实施例的目的在于提供一种网络请求方法、装置、电子设备及存储介质,以实现适应不同时期CDN的带宽利用率需求。
具体技术方案如下:
第一方面,本发明实施例提供了一种回源方法,应用于内容分发网络 CDN的缓存节点,所述方法包括:
在接收到数据请求的情况下,生成回源数据请求;
获取基于预设的时刻与回源分片大小的对应关系,确定所述回源数据请求的生成时刻对应的目标回源分片大小;其中,所述对应关系中,每一时刻对应的回源分片大小与该时刻CDN的带宽利用率相匹配;
基于所述目标回源分片大小,从目标节点中获取所述回源数据请求对应的回源数据;其中,所述目标节点为:所述缓存节点的上一层缓存节点或源站。
可选的,一种具体实现方式中,所述缓存节点包括至少一个代理服务器和至少一个缓存设备,每个代理服务器与任一缓存设备通信连接;
所述获取基于预设的时刻与回源分片大小的对应关系,确定所述回源数据请求的生成时刻对应的目标回源分片大小的步骤,包括:所述代理服务器在接收到数据请求的情况下,获取基于预设的时刻与回源分片大小的对应关系,确定所述回源数据请求的生成时刻对应的目标回源分片大小,并将所述目标回源分片大小发送给任一所述缓存设备;
所述基于所述目标回源分片大小,从目标节点中获取所述回源数据请求对应的回源数据的步骤,包括:所述缓存设备接收所述代理服务器发送的目标回源分片大小,并基于所述目标回源分片大小,从目标节点中获取所述回源数据请求对应的回源数据。
可选的,一种具体实现方式中,所述在接收到数据请求的情况下,生成回源数据请求的步骤,包括:
接收与用户发送的网络请求对应的数据请求;在所述缓存节点中未缓存有所述数据请求所请求的全部数据时,生成所述回源数据请求;
所述获取基于预设的时刻与回源分片大小的对应关系,确定所述回源数据请求的生成时刻对应的目标回源分片大小的步骤,包括:
获取基于预设的时刻与回源分片大小的对应关系,确定所述网络请求的接收时刻对应的目标回源分片大小。
可选的,一种具体实现方式中,在所述接收与用户发送的网络请求对应的数据请求的步骤之后,所述方法还包括:
确定所述网络请求的接收时刻,并从所述对应关系中,读取所述接收时刻所处的时间段对应的回源分片大小;其中,第一时间段对应第一回源分片大小,第二时间段对应第二回源分片大小,所述第一回源分片大小大于所述第二回源分片大小,所述第一时间段内CDN的带宽利用率小于所述第二时间段内CDN的带宽利用率;
所述获取基于预设的时刻与回源分片大小的对应关系,确定所述回源数据请求的生成时刻对应的目标回源分片大小的步骤,包括:将所读取到的回源分片大小确定为所述目标回源分片大小。
可选的,一种具体实现方式中,所述基于所述目标回源分片大小,从目标节点中获取所述回源数据请求对应的回源数据的步骤,包括:
基于缺失数据的数据范围和所述目标回源分片大小,确定所述缺失数据所属的回源范围;其中,所述缺失数据为:所述全部数据中未被所述缓存节点缓存的数据;
利用所述回源范围和所述目标回源分片大小,从目标节点中获取包括所述缺失数据的回源数据。
可选的,一种具体实现方式中,所述CDN中各个节点所缓存的数据是按照数据块形式存储的;
所述基于缺失数据的数据范围和所述目标回源分片大小,确定所述缺失数据所属的回源范围的步骤,包括:
利用所述缺失数据的数据范围,确定所述缺失数据所属的数据块的数量;
基于所述数量和所述目标回源分片大小,确定所述缺失数据所属的回源范围。
可选的,一种具体实现方式中,所述基于所述数量和所述目标回源分片大小,确定所述缺失数据所属的回源范围的步骤,包括:
将所述缺失数据所属的数据块中的第一个数据块的数据范围的起始值,确定为所述回源范围的起始值;
利用预设公式,计算所述回源范围的终止值;其中,所述预设公式为:
Figure BDA0002317239850000041
其中,b为所述回源范围的终止值,a为所述回源范围的起始值,n为所述数量,k为所述目标回源分片大小与预设的存储分片大小的商值且为整数,所述存储分片大小为:每个数据块的数据量,m为所述存储分片,
Figure BDA0002317239850000042
表示对
Figure BDA0002317239850000043
的计算结果向上取整。
可选的,一种具体实现方式中,所述利用所述回源范围和所述目标回源分片大小,从目标节点中获取包括所述缺失数据的回源数据的步骤,包括:
生成携带有所述回源范围和所述目标回源分片大小,且与所述网络请求对应的新的数据请求;
将所述新的数据请求发送给所述目标节点,以使所述目标节点基于所述新的数据请求反馈包括所述缺失数据的回源数据;
接收所述目标节点反馈的所述回源数据。
第二方面,本发明实施例提供了一种回源装置,应用于内容分发网络 CDN的缓存节点,所述装置包括:
请求生成模块,用于在接收到数据请求的情况下,生成回源数据请求;
回源分片获取模块,用于获取基于预设的时刻与回源分片大小的对应关系,确定所述回源数据请求的生成时刻对应的目标回源分片大小;其中,所述对应关系中,每一时刻对应的回源分片大小与该时刻CDN的带宽利用率相匹配;
回源数据获取模块,用于基于所述目标回源分片大小,从目标节点中获取所述回源数据请求对应的回源数据;其中,所述目标节点为:所述缓存节点的上一层缓存节点或源站。
可选的,一种具体实现方式中,所述请求生成模块,包括:
请求接收子模块,用于接收与用户发送的网络请求对应的数据请求;
请求生成子模块,用于在所述缓存节点中未缓存有所述数据请求所请求的全部数据时,生成所述回源数据请求;
所述回源分片获取模块具体用于:获取基于预设的时刻与回源分片大小的对应关系,确定所述网络请求的接收时刻对应的目标回源分片大小。
可选的,一种具体实现方式中,所述请求生成模块还包括:
回源分片获取子模块,用于在所述接收与用户发送的网络请求对应的数据请求之后,确定所述网络请求的接收时刻,并从所述对应关系中,读取所述接收时刻所处的时间段对应的回源分片大小;其中,第一时间段对应第一回源分片大小,第二时间段对应第二回源分片大小,所述第一回源分片大小大于所述第二回源分片大小,所述第一时间段内CDN的带宽利用率小于所述第二时间段内CDN的带宽利用率;
所述回源分片获取模块具体用于:将所读取到的回源分片大小确定为所述目标回源分片大小。
可选的,一种具体实现方式中,所述回源数据获取模块包括:
回源范围确定子模块,用于基于缺失数据的数据范围和所述目标回源分片大小,确定所述缺失数据所属的回源范围;其中,所述缺失数据为:所述全部数据中未被所述缓存节点缓存的数据;
回源数据获取子模块,用于利用所述回源范围和所述目标回源分片大小,从目标节点中获取包括所述缺失数据的回源数据。
可选的,一种具体实现方式中,所述CDN中各个节点所缓存的数据是按照数据块形式存储的;
所述所述回源范围确定子模块包括:
数量确定单元,用于利用所述缺失数据的数据范围,确定所述缺失数据所属的数据块的数量;
范围确定单元,用于基于所述数量和所述目标回源分片大小,确定所述缺失数据所属的回源范围。
可选的,一种具体实现方式中,所述范围确定单元具体用于:
将所述缺失数据所属的数据块中的第一个数据块的数据范围的起始值,确定为所述回源范围的起始值;
利用预设公式,计算所述回源范围的终止值;其中,所述预设公式为:
Figure BDA0002317239850000061
其中,b为所述回源范围的终止值,a为所述回源范围的起始值,n为所述数量,k为所述目标回源分片大小与预设的存储分片大小的商值且为整数,所述存储分片大小为:每个数据块的数据量,m为所述存储分片,
Figure BDA0002317239850000062
表示对
Figure BDA0002317239850000063
的计算结果向上取整。
可选的,一种具体实现方式中,所述回源数据获取子模块具体用于:
生成携带有所述回源范围和所述目标回源分片大小,且与所述网络请求对应的新的数据请求;将所述新的数据请求发送给所述目标节点,以使所述目标节点基于所述新的数据请求反馈包括所述缺失数据的回源数据;接收所述目标节点反馈的所述回源数据。
第三方面,本发明实施例提供了一种电子设备,所述电子设备为内容分发网络CDN的缓存节点,包括处理器、通信接口、缓存设备和通信总线,其中,处理器,通信接口,缓存设备通过通信总线完成相互间的通信;
缓存设备,用于存放计算机程序;
处理器,用于执行缓存设备上所存放的程序时,实现上述第一方面提供的任一回源方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面提供的任一回源方法的步骤。
以上可见,应用本发明实施例提供的方案,可以根据每一时刻CDN的带宽利用率和带宽利用率的需求,预先为每一时刻设定对应的回源分片。这样,在CDN中的缓存节点接收到数据请求的情况下,当判断需要进行回源时,该缓存节点便可以生成回源数据请求,进而将预先设定的该回源数据请求的生成时刻对应的回源分片确定为回源过程中所采用的目标回源分片。基于此,当缓存节点在不同时刻需要进行回源时,所采用的目标回源分片均能够适应不同时刻CDN的带宽利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为CDN的网络结构示意图;
图2为本发明实施例提供的一种回源方法的流程示意图;
图3为本发明实施例提供的另一种回源方法的流程示意图;
图4为本发明实施例提供的另一种回源方法的流程示意图;
图5为CDN中的缓存节点的内部结构示意图;
图6(a)和图6(b)分别为本发明实施例提供的另一种回源方法的流程示意图;
图7为图6(a)和图6(b)中,S203A的一种具体实现方式的流程示意图;
图8为图6(a)和图6(b)中,S203B的一种具体实现方式的流程示意图;
图9为本发明实施例提供的一种回源装置的结构示意图;
图10为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在实际应用中,由于CDN具有流量高峰期和流量低峰期,因此,在流量高峰期和流量低峰期,CDN的带宽利用率差距较大。基于此,如何适应不同时期CDN的带宽利用率需求,是亟待解决的问题。
为了解决上述技术问题,本发明实施例提供了一种回源方法。该方法应用于CDN中的缓存节点,该方法包括:
在接收到数据请求的情况下,生成回源数据请求;
获取基于预设的时刻与回源分片大小的对应关系,确定所述回源数据请求的生成时刻对应的目标回源分片大小;其中,所述对应关系中,每一时刻对应的回源分片大小与该时刻CDN的带宽利用率相匹配;
基于所述目标回源分片大小,从目标节点中获取所述回源数据请求对应的回源数据;其中,所述目标节点为:所述缓存节点的上一层缓存节点或源站。
以上可见,应用本发明实施例提供的方案,可以根据每一时刻CDN的带宽利用率和带宽利用率的需求,预先为每一时刻设定对应的回源分片。这样,在CDN中的缓存节点接收到数据请求的情况下,当判断需要进行回源时,该缓存节点便可以生成回源数据请求,进而将预先设定的该回源数据请求的生成时刻对应的回源分片确定为回源过程中所采用的目标回源分片。基于此,当缓存节点在不同时刻需要进行回源时,所采用的目标回源分片均能够适应不同时刻CDN的带宽利用率。
为了便于理解本发明实施例提供的一种回源方法,首先对CDN进行简要说明。
图1为CDN的网络结构示意图。如图1所示,CDN中可以包括域名系统 110、边缘节点130、中层节点140和上层节点150。其中,可以将域名系统 110、边缘节点130、中层节点140、上层节点150统称为CDN中的节点。此外,还可以将边缘节点130、中层节点140和上层节点150称为CDN中的缓存节点,并且,中层节点140为边缘节点130的上一层缓存节点,上层节点150为中层节点140的上一层缓存节点。此外,CDN中的域名系统110以及边缘节点130与用户客户端120直连,上层节点150与源站160直连。
具体的,用户客户端120向域名系统110发送网络请求,域名系统110对该网络请求进行解析确定用户所要访问的目的IP(Internet Protocol,互联网协议),并向用户客户端120反馈一组边缘节点IP。用户客户端120从所接收到的一组边缘节点IP中,选取1个IP,并将网络请求转发至与所选取IP对应的边缘节点130。边缘节点130在确定未缓存有该网络请求所请求的全部数据时,向中层节点140发送用于请求缺失数据的数据请求,从而,进行回源。相应的,中层节点140在确定未缓存有所接收到的数据请求所请求的全部数据时,向上层节点150发送用于请求缺失数据的数据请求,从而,进行回源。进一步的,上层节点150在确定未缓存有所接收到的数据请求所请求的全部数据时,基于上述所确定的用户所要访问的目的IP,向源站160发送用于请求缺失数据的数据请求,从而,进行回源。其中,上述网络请求和用于请求缺失数据的数据请求均可以称为与用户发送的网络请求对应的数据请求。
此外,相应的,当缓存节点中存储有与用户发送的网络请求对应的数据请求所请求的全部数据时,可以称为该缓存节点所接收到的数据请求命中缓存。相应的,当与用户发送的网络请求对应的数据请求所请求的全部数据均未被接收该数据请求的缓存节点所缓存时,可以称为该缓存节点所接收到的数据请求未命中缓存。
进一步的,除了上述情况之外,缓存节点还可以定期对自身所缓存的数据进行检查,当发现存在由于数据过期而导致的数据缺失时,也可以自动启动回源,以从该缓存节点的上一层缓存节点或源站获取回源数据,以保证该缓存节点所缓存数据的完整性。
其中,所谓数据过期是指:所缓存的数据的存储时长达到预设的存储周期所指定的时长,此时,该数据将从缓存节点的缓存设备中删除。
下面,对本发明实施例提供的一种回源方法进行详细介绍。
图2为本发明实施例提供的一种回源方法的流程示意图,该方法应用于 CDN中的缓存节点,即应用于图1中边缘节点130、中层节点140和上层节点150。如图2所示,该方法可以包括如下步骤:
S201:在接收到数据请求的情况下,生成回源数据请求;
缓存节点在接收到数据请求时,可以确定自身是否缓存有该数据请求所请求的数据,进而,当确定自身未缓存有该数据请求所请求的全部数据是,缓存节点便可以判断出需要进行回源,进而,便可以生成回源数据请求。
其中,缓存节点可以通过多种方式执行上述步骤S201,对此,本发明实施例不做具体限定。为了行文清晰,后续将会对上述步骤S201的具体实现方式进行举例说明。
S202:获取基于预设的时刻与回源分片大小的对应关系,确定回源数据请求的生成时刻对应的目标回源分片大小;
其中,对应关系中,每一时刻对应的回源分片大小与该时刻CDN的带宽利用率相匹配;可以理解的是,确定目标回源分配大小是可以根据预先配置的映射关系确定的,这种映射关系可以是以数据表的形式存储。对于该映射关系中可以是不同的时间段对应不同的分片回源大小,将回源数据请求的生成时刻所属的时间段对应的分片回源大小确定为目标回源分配大小。当然可以理解的是,对于回源分片大小也可以是根据实时的带宽利用率确定的,带宽利用率高的时刻下,回源分片大小小于带宽利用率低的时刻。
在执行完上述步骤S201,生成回源数据请求后,缓存节点便可以获取进行数据回源时所采用的目标回源分片大小。其中,该目标回源分片大小是基于预设的时刻与回源分片大小的对应关系确实的,是该对应关系中与回源数据请求的生成时刻对应的回源分片大小。
其中,在上述预设的时刻与回源分片大小的对应关系中,每一时刻对应的回源分片大小与该时刻CDN的带宽利用率相匹配。基于此,上述对应关系中,每一时刻对应的回源分片大小便可以是基于该时刻CDN的带宽利用率确定的,且用于适应该时刻CDN的带宽利用率的需求。
具体的,可以预先根据每一时刻CDN的带宽利用率确定该时刻对应的回源分片大小,并且,所确定的该生成时刻对应的回源分片大小是用于适应该时刻CDN的带宽利用率的需求的,从而,该时刻对应的回源分片大小与该时刻CDN的带宽利用率相匹配。
基于此,在缓存节点中可以存储有预设的时刻和回源分片大小的对应关系。这样,缓存节点生成上述回源数据请求后,缓存节点便可以获取基于该对应关系确定的该回源数据请求的生成时刻对应的目标回源分片大小。
进一步的,针对CDN的流量高峰期,由于CDN的带宽利用率较高,为了保证除回源过程之外的其他网络任务的顺利完成,可以降低回源过程所使用的带宽,从而,在确定上述时刻和回源分片大小的对应关系时,针对CDN 的流量高峰期,可以设定数值较小的回源分片大小。
针对CDN的流量低峰期,由于CDN的带宽利用率较低,因此,为了能够提高流量低峰期,CDN的带宽利用率,可以提高回源过程所使用的带宽,从而,在确定上述时刻和回源分片大小的对应关系时,针对CDN的流量低峰期,可以设定数值较大的回源分片大小。这样,在CDN的流量低峰期,回源过程所使用的带宽较高,从而,可以提高CDN的带宽利用率。
基于此,在CDN的流量低峰期内,各个时刻对应的回源分片大小大于,在CDN的流量高峰期内,各个时刻对应的回源分片大小。
基于此,从按照上述回源分片大小的设定原理预设的时刻和回源分片大小的对应关系中,读取上述回源数据请求的生成时刻对应的目标回源分片大小时,如果该生成时刻位于CDN的流量高峰期,则可以读取到数值较小的回源分片大小,从而,可以降低回源过程中所使用的带宽,在保证CDN的带宽利用率的前提下,保证除回源过程之外的其他网络任务的顺利完成;如果该生成时刻位于CDN的流量低峰期,则可以读取到的数据较大的回源分片大小,从而,可以提高回源过程中所使用的带宽,提高CDN的带宽利用率。
显然,利用本发明实施例提供的方案,根据不同时刻CDN的带宽利用率,设定适应该时刻的带宽利用率需求的回源分片大小,可以保证在任何时刻进行回源时,均可以适应该时期CDN的带宽利用率需求。
S203:基于目标回源分片大小,从目标节点中获取回源数据请求对应的回源数据;
其中,目标节点为:缓存节点的上一层缓存节点或源站。
在获取到上述回源数据请求的生成时刻对应的目标回源分片大小后,缓存节点便可以基于目标回源分片大小,从目标节点中获取回源数据请求对应的回源数据。
其中,目标节点为该缓存节点的上一层缓存节点或源站。具体的,当缓存节点为边缘节点时,目标节点为中层节点;当缓存节点为中层节点时,目标节点为上层节点;当缓存节点为上层节点时,目标节点为源站。
可选的,在执行完上述步骤S203,获取到回源数据请求对应的回源数据后,缓存节点便可以在本地缓存该回源数据。
下面对上述步骤S201的具体实现方式进行举例说明。
可选的,一种具体实现方式中,如图3所示,上述步骤S201可以包括如下步骤:
S201A:接收与用户发送的网络请求对应的数据请求;
S201C:在缓存节点中未缓存有数据请求所请求的全部数据时,生成回源数据请求。
在本具体实现方式中,缓存节点可以接收与用户发送的网络请求对应的数据请求。在接收到上述数据请求后,缓存节点便可以在本地所缓存的数据中,查找该数据请求所请求的数据,进而,当缓存节点在本地所缓存的数据中未查找到的该数据请求所请求的全部数据时,缓存节点可以确定本地未缓存有该数据请求所请求的全部数据,从而生成回源数据请求。
可选的,当缓存节点为CDN中的边缘节点时,该数据请求即为用户客户端发送的网络请求。其中,用户向该用户客户端发送网络请求,进而,用户客户端将该网络请求发送至边缘节点。
可选的,当缓存节点为CDN中边缘节点以外的缓存节点时,即当缓存节点为CDN中的中层节点或上层节点时,该数据请求为:该缓存节点的下一层缓存节点向该缓存节点发送的,且用于该缓存节点的下一层缓存节点从该缓存节点中请求所缺失数据的请求。
其中,当缓存节点为CDN中的中层节点时,边缘节点向该中层节点发送与用户发送的网络请求对应的数据请求,从而,该边缘节点从该中层节点中请求所缺失数据;
当缓存节点为CDN中的上层节点时,中层节点向该上层节点发送与用户发送的网络请求对应的数据请求,从而,该中层节点从该上层节点中请求所缺失数据。
相应的,在本具体实现方式中,上述步骤S202,获取基于预设的时刻与回源分片的对应关系,确定的生成时刻对应的目标回源分片,便可以包括如下步骤:。
S202A:获取基于预设的时刻与回源分片大小的对应关系,确定网络请求的接收时刻对应的目标回源分片大小。
在本具体实现方式中,可以将CDN中的边缘节点接收用户发送的网络请求的时刻作为上述回源数据请求的生成时刻,因此,在生成回源数据请求后,缓存节点便可以获取预设的时刻与回源分片大小的对应关系中,该网络请求的接收时刻对应的回源分片大小,并将所获取的回源分片大小确定为目标回源分片。
相应的,在缓存节点中缓存有数据请求所请求的全部数据时,即该缓存节点所接收到的数据请求命中缓存时,该所读取到的目标回源分片将不会被使用,缓存节点可以从本地缓存中读取上述数据请求所请求的全部数据,并将所读取到的全部数据反馈给下一层缓存节点或者代理服务器,从而,完成对上述数据请求的响应。
可选的,一种具体实现方式中,如图4所示,在图3所示实施例的基础上,本发明实施例提供的一种回源方法还可以包括如下步骤:
S201B:确定网络请求的接收时刻,并从对应关系中,读取接收时刻所处的时间段对应的回源分片大小;
其中,第一时间段对应第一回源分片大小,第二时间段对应第二回源分片大小,第一回源分片大小大于第二回源分片大小,第一时间段内CDN的带宽利用率小于第二时间段内CDN的带宽利用率;
相应的,在本具体实现方式中,上述步骤S202,获取基于预设的时刻与回源分片的对应关系,确定的生成时刻对应的目标回源分片,便可以包括如下步骤:
S202B:将所读取到的回源分片大小确定为目标回源分片大小。
在本具体实现方式中,预设的时刻与回源分片大小的对应关系中,按照 CDN的流量高峰期和流量低峰期,将每个预设的时间周期划分为了第一时间段和第二时间段,并且,将第一时间段对应的回源分片大小设定为第一回源分片大小,将第二时间段对应的回源分片大小设定为第二回源分片大小。
其中,第一回源分片大小大于第二回源分片大小,且第一时间段内CDN 的带宽利用率小于第二时间段内CDN的带宽利用率;显然,第一时间段对应于CDN的流量低峰期,第二时间段对应于CDN的流量高峰期。
可选的,也可以将CDN的流量低峰期对应的时间段设定为第二时间段,将CDN的流量高峰期对应的时间段设定为第一时间段,则在这种设定下,第一回源分片大小小于第二回源分片大小,且第一时间段内CDN的带宽利用率大于第二时间段内CDN的带宽利用率。
基于此,在本具体实现方式中,缓存节点在接收到与用户发送的网络请求对应的数据请求后,缓存节点便可以确定该网络请求的接收时刻。此时,无论在缓存节点中是否缓存有数据请求所请求的全部数据,缓存节点均可以该接收时刻所对应的时间段,从而从上述时刻和回源分片大小的对应关系中,读取该时间段所对应的回源分片大小。
这样,当缓存节点确定自身未缓存有数据请求所请求的全部数据时,缓存节点便可以直接将上述读取到的回源分片大小确定为目标回源分片大小。
可选的,另一种具体实现方式中,上述步骤S201可以包括如下步骤:
缓存节点可以定时生成用于指示对自身所缓存数据进行过期检查的数据请求,从而对自身所缓存的数据进行检查,当检查到存在由于数据过期所导致的数据缺失时,生成关于过期数据的回源数据请求。
相应的,在本具体实现方式中,在生成关于过期数据的回源数据请求后,缓存节点便可以确定该回源数据请求的生成时刻,从而获取预设的时刻与回源分片大小的对应关系中,该生成时刻对应的回源分片大小,并将所获取的回源分片大小确定为目标回源分片。
可选的,一种具体实现方式中,如图5所示,在缓存节点中可以包括虚拟服务器,以及至少一个代理服务器和至少一个缓存设备,并且,每个代理服务器与任一缓存设备通信连接,也就是说,每个代理服务器可以访问各组中的任一缓存设备。
相应的,在本具体实现方式中,上述步骤S202,获取基于预设的时刻与回源分片大小的对应关系,确定回源数据请求的生成时刻对应的目标回源分片大小即为:
该缓存节点中的任一代理服务器在接收到数据请求的情况下,获取基于预设的时刻与回源分片大小的对应关系,确定回源数据请求的生成时刻对应的目标回源分片大小,并将目标回源分片大小发送给任一缓存设备;
进而,上述步骤S203,基于目标回源分片大小,从目标节点中获取回源数据请求对应的回源数据即为:
该缓存节点中的任一缓存设备接收任一代理服务器发送的目标回源分片大小,并基于目标回源分片大小,从目标节点中获取回源数据请求对应的回源数据。
具体的:可选的,在图4所示实施例的基础上,缓存节点中的虚拟服务器接收下一层缓存节点或用户客户端发送的上述与用户发送的网络请求对应的数据请求,并将该数据请求发送至某一代理服务器中。这样,代理服务器便可以从预先存储的时刻与回源分片的对应关系中,读取上述网络请求的接收时刻对应的目标回源分片。进而,代理服务器将该目标回源分片编写入所接收到的数据请求的请求头中,并将该数据请求发送至该缓存节点中的各个缓存设备中。接着,各个缓存设备在接收到该数据请求后,便可以从该数据请求的请求头中,解析得到上述目标回源分片,并将该目标回源分片存储到本地的内存中。然后,各个缓存设备可以确定本地缓存中是否存储有该数据请求所请求的数据,以确定该缓存节点中是否存储有该数据请求所请求的全部数据。
其中,在该缓存节点中未缓存有数据请求所请求的全部数据时,各个缓存设备便可以从内存中获取预先存储的目标回源片段,并基于目标回源分片,从目标节点中获取回源数据请求对应的回源数据。
相应的,在该缓存节点中缓存有数据请求所请求的全部数据时,各个缓存设备便可以读取该全部数据,并将该全部数据反馈给上述向缓存设备发送数据请求的代理服务器。从而,该代理服务器便可以进一步通过该缓存节点中的虚拟服务器向下一层缓存节点或代理服务器反馈该全部数据。这样,便可以完成对上述数据请求的响应。
可选的,若回源是基于缓存节点自身存在由于数据过期所导致的数据缺失所启动的,则缓存节点中的某一缓存设备可以向任一代理服务器发送数据缺失通知。这样,代理服务器便可以生成回源数据请求,并确定该回源数据请求对应的生成时间,进而,从预先存储的时刻与回源分片的对应关系中,读取上述网络请求的接收时刻对应的目标回源分片。这样,代理服务器将该目标回源分片编写入回源数据请求的请求头中,并将该回源数据请求发送至该缓存节点中的各个缓存设备中。接着,各个缓存设备在接收到该回源数据请求后,便可以从该回源数据请求的请求头中,解析得到上述目标回源分片,并将该目标回源分片存储到本地的内存中。然后,各个缓存设备可以基于目标回源分片,从目标节点中获取回源数据请求对应的回源数据。
可选的,在图5中,上述虚拟服务器可以为LVS(Linux Virtual Server, Linux虚拟服务器),其中,Linux为一种操作系统,上述代理服务器可以为nginx(engine x),上述缓存设备为cache。
可选的,一种具体实现方式中,如图6(a)和图6(b)所示,在图3和图4所示实施例的基础上,上述步骤S203,基于目标回源分片大小,从目标节点中获取回源数据请求对应的回源数据,可以包括如下步骤:
S203A:基于缺失数据的数据范围和目标回源分片大小,确定缺失数据所属的回源范围;
其中,缺失数据为:全部数据中未被缓存节点缓存的数据;
S203B:利用回源范围和目标回源分片大小,从目标节点中获取包括缺失数据的回源数据。
具体的:
针对上述步骤S203A,基于缺失数据的数据范围和目标回源分片大小,确定缺失数据所属的回源范围:
在执行完上述步骤S202,获取到目标回源分片大小后,缓存节点便可以继续执行上述步骤S203A,确定缺失数据所属的回源范围。
在确定本地未缓存有数据请求所请求的全部数据时,缓存节点从上述数据请求中获取该数据请求所请求的全部数据的数据范围,并确定本地所缓存的数据中属于该数据请求所请求的数据的数据范围,进而,缓存节点便可以基于上述两个数据范围,确定该数据请求所请求的全部数据中,未被该缓存节点缓存的数据的数据范围,即确定缺失数据的数据范围。
例如,该数据请求所请求的全部数据的数据范围为:文件A中排列顺序为第1MB位至第3MB-1位的数据组成的数据范围,可以简称为:文件A中第1MB位至第3MB位;本地所缓存的数据中属于该数据请求所请求的数据的数据范围为:文件A中排列顺序为第2MB位至第3MB-1位的数据组成的数据范围,可以简称为:文件A中第2MB位至第3MB位;则缺失数据的数据范围为:文件A中排列顺序为第0位至第1MB-1位的数据组成的数据范围,可以简称为:文件A第0位至第1MB位。
这样,缓存节点便可以基于缺失数据的数据范围和目标回源分片大小,确定缺失数据所属的回源范围。
可选的,一种具体实现方式中,CDN中各个节点所缓存的数据可以是按照数据块形式存储的。
其中,所存储的每个数据块的数据量是相同,且该数据块的数据量可以称为存储分片,并且各个数据块是按照所包括的数据在所存储文件中的排列顺序依次排列存储的。
例如,所存储的文件的总数据为10MB,且CDN中各个节点按照数据块形式存储数据时,存储分片为1MB,则上述所存储的文件可以被分为10个数据块存储。具体的,从该文件的起始数据开始,该文件中排列顺序为第0位至第1MB-1位的数据组成第一个数据块进行存储,该文件中排列顺序为第 1MB位至第2MB-1位的数据组成第二个数据块进行存储,该文件中排列顺序为第2MB位至第3MB-1位的数据组成第三个数据块进行存储,依次类推,直至存储包括该文件中排列顺序为第9MB位至第10MB-1位的数据组成的第十个数据块。
相应的,在本具体实现方式中,如图7所示,上述步骤S203A,基于缺失数据的数据范围和目标回源分片大小,确定缺失数据所属的回源范围,便可以包括如下步骤:
S701:利用缺失数据的数据范围,确定缺失数据所属的数据块的数量;
S702:基于数量和目标回源分片大小,确定缺失数据所属的回源范围。
由于源站或各个缓存节点在向下一层缓存节点发送数据时,是按照所存储的数据块发送的,也就是说,当所实际需要的数据为某一数据块中的部分数据时,源站或各个缓存节点在向下一层缓存节点所发送的数据为该数据块。因此,在确定缺失数据所属的回源范围时,便可以首先利用缺失数据的数据范围,确定缺失数据所属的数据块,进而,确定缺失数据所属的数据块的数量。
例如,缺失数据的数据范围为:文件A中第1.5MB位至2.5MB位,存储分片为1MB,则缺失数据的数据块为:文件A中排列顺序为第1MB位至第2MB-1位的数据组成的第2个数据块和文件A中排列顺序为第2MB位至第 3MB-1位的数据组成的第3个数据块,缺失数据所属的数据块的数量为2。
这样,在确定缺失数据所属的数据块的数量后,缓存节点便可以基于该数量和目标回源分片大小,确定缺失数据所属的回源范围。
其中,可选的,一种具体实现方式中,上述步骤S702,基于数量和目标回源分片大小,确定缺失数据所属的回源范围,可以包括如下步骤:
步骤A1:将缺失数据所属的数据块中的第一个数据块的数据范围的起始值,确定为回源范围的起始值;
步骤A2:利用预设公式,计算回源范围的终止值;
其中,预设公式为:
Figure BDA0002317239850000191
其中,b为回源范围的终止值,a为回源范围的起始值,n为数量,k为目标回源分片大小与预设的存储分片大小的商值且为整数,存储分片大小为:每个数据块的数据量,m为存储分片,
Figure BDA0002317239850000192
表示对
Figure BDA0002317239850000193
的计算结果向上取整。
为了保证源站或上一层缓存节点按照回源分片大小逐次向下一层缓存节点发送包括缺失数据的回源数据时,每次所发送的数据的数据量均满足回源分片大小所指示的数据量,从而,充分利用回源过程中与回源分片大小所匹配的带宽,在本具体实现方式中,目标回源分片大小所指示的数据量是预设的存储分片所指示的数据量的整数倍,即在本具体实现方式中,上述预设公式中的k为目标回源分片大小与预设的存储分片的商值且为整数。
进一步的,在本具体实现方式中,缓存节点便可以可以将缺失数据所属的数据块中的第一个数据块的数据范围的起始值,确定为回源范围的起始值,并利用上述公式,计算得到回源范围的终止值,从而,在获取到回源范围的起始值和终止值之后,缓存节点便可以确定回源范围。
例如,缺失数据的数据范围为:文件A中第1.5MB位-2.5MB位,存储分片为1MB,则缺失数据的数据块为:文件A中排列顺序为第1MB位至第2MB-1位的数据组成的第2个数据块和文件A中排列顺序为第2MB位至第 3MB-1位的数据组成的第3个数据块,缺失数据所属的数据块的数量为2。并且,回源分片大小为2MB。
则所确定的回源范围的起始值a为:文件A中排列顺序为第1MB位至第 2MB-1位的数据组成的第2个数据块的起始值,即为第1MB位;
上述预设公式中,n=2为数量,k=2,m=1MB,则计算得到回源范围的终止值b为:
Figure BDA0002317239850000201
进而,确定回源范围为:文件A中排列顺序为第1MB位至第3MB-1位的数据组成的数据范围,即为文件A中第1位至第3MB位。
又例如,缺失数据的数据范围为:文件A中第1.5MB位至2.5MB位,存储分片为2MB,则缺失数据的数据块为:文件A中排列顺序为第0位至第 2MB位-1的数据组成的第1个数据块和文件A中排列顺序为第2MB位-第 4MB-1位的数据组成的第2个数据块,缺失数据所属的数据块的数量为2。并且,回源分片大小为2MB。
则所确定的回源范围的起始值a为:文件A中排列顺序为第0位至第 2MB-1位的数据组成的第1个数据块的起始值,即为第0位;
上述预设公式中,n=2为数量,k=1,m=2MB,则计算得到回源范围的终止值b为:
Figure BDA0002317239850000202
进而,确定回源范围为:文件A中排列顺序为第0位至第4MB-1位的数据组成的数据范围,即为文件A中第0位至第4MB位。
再例如,缺失数据的数据范围为:文件A中第1.5MB位至2.5MB位,存储分片为2MB,则缺失数据的数据块为:文件A中排列顺序为第0位至第 2MB-1位的数据组成的第1个数据块和文件A中排列顺序为第2MB位至第 4MB-1位的数据组成的第2个数据块,缺失数据所属的数据块的数量为2。并且,回源分片大小为6MB。
则所确定的回源范围的起始值a为:文件A中排列顺序为第0位至第 2MB-1位的数据组成的第1个数据块的起始值,即为第0位;
上述预设公式中,n=2为数量,k=3,m=2MB,则计算得到回源范围的终止值b为:
Figure BDA0002317239850000211
进而,确定回源范围为:文件A中排列顺序为第0位至第6MB-1位的数据组成的数据范围,即为文件A中第0位至第6MB位。
针对上述步骤S203B,利用回源范围和目标回源分片大小,从目标节点中获取包括缺失数据的回源数据。
在执行完上述步骤S203A,确定缺失数据所属的回源范围,缓存节点便可以继续执行上述步骤S203B,利用回源范围和目标回源分片大小,从目标节点中获取包括缺失数据的回源数据。
其中,目标节点为该缓存节点的上一层缓存节点或源站。具体的,当缓存节点为边缘节点时,目标节点为中层节点;当缓存节点为中层节点时,目标节点为上层节点;当缓存节点为上层节点时,目标节点为源站。
可选的,一种具体实现方式中,如图8所示,上述步骤S203B,可以包括如下步骤:
S801:生成携带有回源范围和目标回源分片大小,且与网络请求对应的新的数据请求;
S802:将新的数据请求发送给目标节点,以使目标节点基于新的数据请求反馈包括缺失数据的回源数据;
S803:接收目标节点反馈的回源数据。
在本具体实现方式中,在确定缺失数据所属的回源范围后,缓存节点便可以生成携带与网络请求对应的新的数据请求,且该新的数据请求中携带有所确定的回源范围和所获取的目标回源分片大小。进而,缓存节点便可以将该新的数据请求发送给目标节点。
这样,当目标节点为中层节点或上层节点时,则该中层节点或上层节点便可以从本地所存储的数据中查找是否包括属于上述回源范围的全部数据。
其中,如果是,则该属于上述回源范围的全部数据即为包括缺失数据的回源数据,进而,该中层节点或上层节点便可以将所查找到的属于上述回源范围的全部数据,按照目标回源分片大小的数据量,逐次将所查找到的回源数据反馈给缓存节点,从而,缓存节点可以接收该中层节点或上层节点反馈的回源数据。
相应的,如果否,则该中层节点或上层节点便可以采用本发明实施例提供的一种回源方法从上层节点或源站获取相应的回源数据。
此外,当目标节点为源站时,源站便可以获取该数据请求中所携带的, CDN中的域名系统所确定的用户所要访问的目的IP,进而,从该IP对应的网站中获取包括缺失数据的回源数据,并将该回源数据反馈给缓存节点,从而,缓存节点可以接收源站反馈的回源数据。
进一步的,在执行完上述步骤S203B,获取到包括缺失数据的回源数据后,缓存节点便可以在本地缓存该回源数据,并在缓存结束后,从已缓存的数据中,读取所接收到的数据请求所请求的全部数据,并将所读取到的全部数据反馈给下一层缓存节点或用户客户端,从而,完成对该数据请求的响应。
其中,由于所确定的缺失数据所属的回源范围所包括的数据多于缺失数据,并且,缓存节点在获取到回源数据后,将在本地缓存该回源数据,因此,在缓存过程中,可以多缓存一些数据,从而,在下次获取到数据请求时,可以提高该缓存节点中,数据请求命中缓存的概率。
根据上述步骤S702的一种具体实现方式的介绍,当CDN中各个节点所缓存的数据按照数据块形式存储,且存储分片不变时,目标回源分片大小所指示的数据量越大,则所确定的回源范围越大,从而,缓存节点从上一层缓存节点或源站获取到的回源数据越多。
基于此,针对CDN的流量低峰期,可以设定数值较大的回源分片大小。这样,在CDN的流量低峰期,缓存节点便可以缓存较多的数量。从而,介于缓存节点的缓存中在CDN的流量低峰期时已经增加了较多的数据,便可以提高CDN的流量高峰期,缓存节点中数据请求命中缓存的概率,从而,可以降低CDN的流量高峰期中回源过程所使用的带宽,保证CDN的流量高峰期中除回源过程之外的其他网络任务的顺利完成。
相应于上述本发明实施例提供的一种回源方法,本发明实施例还提供了一种回源装置。
图9为本发明实施例提供的一种回源装置的结构示意图,其中,该回源装置应用于CDN的缓存节点。如图9所示,该回源装置可以包括如下模块:
请求生成模块910,用于在接收到数据请求的情况下,生成回源数据请求;
回源分片获取模块920,用于获取基于预设的时刻与回源分片大小的对应关系,确定所述回源数据请求的生成时刻对应的目标回源分片大小;其中,所述对应关系中,每一时刻对应的回源分片大小与该时刻CDN的带宽利用率相匹配;
回源数据获取模块930,用于基于所述目标回源分片大小,从目标节点中获取所述回源数据请求对应的回源数据;其中,所述目标节点为:所述缓存节点的上一层缓存节点或源站。
以上可见,应用本发明实施例提供的方案,可以根据每一时刻CDN的带宽利用率和带宽利用率的需求,预先为每一时刻设定对应的回源分片。这样,在CDN中的缓存节点接收到数据请求的情况下,当判断需要进行回源时,该缓存节点便可以生成回源数据请求,进而将预先设定的该回源数据请求的生成时刻对应的回源分片确定为回源过程中所采用的目标回源分片。基于此,当缓存节点在不同时刻需要进行回源时,所采用的目标回源分片均能够适应不同时刻CDN的带宽利用率。
可选的,一种具体实现方式中,所述请求生成模块910,包括:
请求接收子模块,用于接收与用户发送的网络请求对应的数据请求;
请求生成子模块,用于在所述缓存节点中未缓存有所述数据请求所请求的全部数据时,生成所述回源数据请求;
所述回源分片获取模块920具体用于:获取基于预设的时刻与回源分片大小的对应关系,确定所述网络请求的接收时刻对应的目标回源分片大小。
可选的,一种具体实现方式中,所述请求生成模块910还包括:
回源分片获取子模块,用于在所述接收与用户发送的网络请求对应的数据请求之后,确定所述网络请求的接收时刻,并从所述对应关系中,读取所述接收时刻所处的时间段对应的回源分片大小;其中,第一时间段对应第一回源分片大小,第二时间段对应第二回源分片大小,所述第一回源分片大小大于所述第二回源分片大小,所述第一时间段内CDN的带宽利用率小于所述第二时间段内CDN的带宽利用率;
所述回源分片获取模块920具体用于:将所读取到的回源分片大小确定为所述目标回源分片大小。
可选的,一种具体实现方式中,所述回源数据获取模块930包括:
回源范围确定子模块,用于基于缺失数据的数据范围和所述目标回源分片大小,确定所述缺失数据所属的回源范围;其中,所述缺失数据为:所述全部数据中未被所述缓存节点缓存的数据;
回源数据获取子模块,用于利用所述回源范围和所述目标回源分片大小,从目标节点中获取包括所述缺失数据的回源数据。
可选的,一种具体实现方式中,所述CDN中各个节点所缓存的数据是按照数据块形式存储的;
所述所述回源范围确定子模块包括:
数量确定单元,用于利用所述缺失数据的数据范围,确定所述缺失数据所属的数据块的数量;
范围确定单元,用于基于所述数量和所述目标回源分片大小,确定所述缺失数据所属的回源范围。
可选的,一种具体实现方式中,所述范围确定单元具体用于:
将所述缺失数据所属的数据块中的第一个数据块的数据范围的起始值,确定为所述回源范围的起始值;
利用预设公式,计算所述回源范围的终止值;其中,所述预设公式为:
Figure BDA0002317239850000251
其中,b为所述回源范围的终止值,a为所述回源范围的起始值,n为所述数量,k为所述目标回源分片大小与预设的存储分片大小的商值且为整数,所述存储分片大小为:每个数据块的数据量,m为所述存储分片,
Figure BDA0002317239850000252
表示对
Figure BDA0002317239850000253
的计算结果向上取整。
可选的,一种具体实现方式中,所述回源数据获取子模块具体用于:
生成携带有所述回源范围和所述目标回源分片大小,且与所述网络请求对应的新的数据请求;将所述新的数据请求发送给所述目标节点,以使所述目标节点基于所述新的数据请求反馈包括所述缺失数据的回源数据;接收所述目标节点反馈的所述回源数据。
相应于上述本发明实施例提供的一种回源方法,本发明实施例还提供了一种电子设备,该电子设备为CDN的缓存节点,如图10所示,包括处理器 1001、通信接口1002、存储器1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信,
存储器1003,用于存放计算机程序;
处理器1001,用于执行存储器1003上所存放的程序时,实现上述本发明实施例提供的一种回源方法。
具体的,上述回源方法,包括:
在接收到数据请求的情况下,生成回源数据请求;
获取基于预设的时刻与回源分片大小的对应关系,确定所述回源数据请求的生成时刻对应的目标回源分片大小;其中,所述对应关系中,每一时刻对应的回源分片大小与该时刻CDN的带宽利用率相匹配;
基于所述目标回源分片大小,从目标节点中获取所述回源数据请求对应的回源数据;其中,所述目标节点为:所述缓存节点的上一层缓存节点或源站。
需要说明的是,上述处理器1001执行存储器1003上存放的程序而实现的一种回源方法的其他实现方式,与前述方法实施例部分提供的一种回源方法实施例相同,这里不再赘述。
以上可见,应用本发明实施例提供的方案,可以根据每一时刻CDN的带宽利用率和带宽利用率的需求,预先为每一时刻设定对应的回源分片。这样,在CDN中的缓存节点接收到数据请求的情况下,当判断需要进行回源时,该缓存节点便可以生成回源数据请求,进而将预先设定的该回源数据请求的生成时刻对应的回源分片确定为回源过程中所采用的目标回源分片。基于此,当缓存节点在不同时刻需要进行回源时,所采用的目标回源分片均能够适应不同时刻CDN的带宽利用率。
上述电子设备提到的通信总线可以是外设部件互连标准(PeripheralCoMBponent Interconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(RandoMB Access MBeMBory, RAMB),也可以包括非易失性存储器(Non-Volatile MBeMBory,NVMB),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-PrograMBMBable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
相应于上述本发明实施例提供的一种回源方法,本发明实施例还提供了一种计算机可读存储介质,该计算机程序被处理器执行时实现上述本发明实施例提供的任一种回源方法的步骤。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、电子设备实施例、计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (11)

1.一种回源方法,其特征在于,应用于内容分发网络CDN的缓存节点,所述方法包括:
在接收到数据请求的情况下,生成回源数据请求;
获取基于预设的时刻与回源分片大小的对应关系,确定所述回源数据请求的生成时刻对应的目标回源分片大小;其中,所述对应关系中,每一时刻对应的回源分片大小与该时刻CDN的带宽利用率相匹配,带宽利用率高的时刻下的回源分片的大小小于带宽利用率低的时刻下的回源分片的大小;
基于所述目标回源分片大小,从目标节点中获取所述回源数据请求对应的回源数据;其中,所述目标节点为:所述缓存节点的上一层缓存节点或源站。
2.根据权利要求1所述的方法,其特征在于,所述缓存节点包括至少一个代理服务器和至少一个缓存设备,每个代理服务器与任一缓存设备通信连接;
所述获取基于预设的时刻与回源分片大小的对应关系,确定所述回源数据请求的生成时刻对应的目标回源分片大小的步骤,包括:所述代理服务器在接收到数据请求的情况下,获取基于预设的时刻与回源分片大小的对应关系,确定所述回源数据请求的生成时刻对应的目标回源分片大小,并将所述目标回源分片大小发送给任一所述缓存设备;
所述基于所述目标回源分片大小,从目标节点中获取所述回源数据请求对应的回源数据的步骤,包括:所述缓存设备接收所述代理服务器发送的目标回源分片大小,并基于所述目标回源分片大小,从目标节点中获取所述回源数据请求对应的回源数据。
3.根据权利要求1或2所述的方法,其特征在于,所述生成回源数据请求的步骤,包括:
接收与用户发送的网络请求对应的数据请求;
在所述缓存节点中未缓存有所述数据请求所请求的全部数据时,生成所述回源数据请求;
所述获取基于预设的时刻与回源分片大小的对应关系,确定所述回源数据请求的生成时刻对应的目标回源分片大小的步骤,包括:
获取基于预设的时刻与回源分片大小的对应关系,确定所述网络请求的接收时刻对应的目标回源分片大小。
4.根据权利要求3所述的方法,其特征在于,在所述接收与用户发送的网络请求对应的数据请求的步骤之后,所述方法还包括:
确定所述网络请求的接收时刻,并从所述对应关系中,读取所述接收时刻所处的时间段对应的回源分片大小;其中,第一时间段对应第一回源分片大小,第二时间段对应第二回源分片大小,所述第一回源分片大小大于所述第二回源分片大小,所述第一时间段内CDN的带宽利用率小于所述第二时间段内CDN的带宽利用率;
所述获取基于预设的时刻与回源分片大小的对应关系,确定所述回源数据请求的生成时刻对应的目标回源分片大小的步骤,包括:将所读取到的回源分片大小确定为所述目标回源分片大小。
5.根据权利要求3所述的方法,其特征在于,所述基于所述目标回源分片大小,从目标节点中获取所述回源数据请求对应的回源数据的步骤,包括:
基于缺失数据的数据范围和所述目标回源分片大小,确定所述缺失数据所属的回源范围;其中,所述缺失数据为:所述全部数据中未被所述缓存节点缓存的数据;
利用所述回源范围和所述目标回源分片大小,从目标节点中获取包括所述缺失数据的回源数据。
6.根据权利要求5所述的方法,其特征在于,所述CDN中各个节点所缓存的数据是按照数据块形式存储的;
所述基于缺失数据的数据范围和所述目标回源分片大小,确定所述缺失数据所属的回源范围的步骤,包括:
利用所述缺失数据的数据范围,确定所述缺失数据所属的数据块的数量;
基于所述数量和所述目标回源分片大小,确定所述缺失数据所属的回源范围。
7.根据权利要求6所述的方法,其特征在于,所述基于所述数量和所述目标回源分片大小,确定所述缺失数据所属的回源范围的步骤,包括:
将所述缺失数据所属的数据块中的第一个数据块的数据范围的起始值,确定为所述回源范围的起始值;
利用预设公式,计算所述回源范围的终止值;其中,所述预设公式为:
Figure FDA0003897862840000031
其中,b为所述回源范围的终止值,a为所述回源范围的起始值,n为所述数量,k为所述目标回源分片大小与预设的存储分片大小的商值且为整数,所述存储分片大小为:每个数据块的数据量,m为所述存储分片,
Figure FDA0003897862840000032
表示对
Figure FDA0003897862840000033
的计算结果向上取整。
8.根据权利要求5所述的方法,其特征在于,所述利用所述回源范围和所述目标回源分片大小,从目标节点中获取包括所述缺失数据的回源数据的步骤,包括:
生成携带有所述回源范围和所述目标回源分片大小,且与所述网络请求对应的新的数据请求;
将所述新的数据请求发送给所述目标节点,以使所述目标节点基于所述新的数据请求反馈包括所述缺失数据的回源数据;
接收所述目标节点反馈的所述回源数据。
9.一种回源装置,其特征在于,应用于内容分发网络CDN的缓存节点,所述装置包括:
请求生成模块,用于在接收到数据请求的情况下,生成回源数据请求;
回源分片获取模块,用于获取基于预设的时刻与回源分片大小的对应关系,确定所述回源数据请求的生成时刻对应的目标回源分片大小;其中,所述对应关系中,每一时刻对应的回源分片大小与该时刻CDN的带宽利用率相匹配,带宽利用率高的时刻下的回源分片的大小小于带宽利用率低的时刻下的回源分片的大小;
回源数据获取模块,用于基于所述目标回源分片大小,从目标节点中获取所述回源数据请求对应的回源数据;其中,所述目标节点为:所述缓存节点的上一层缓存节点或源站。
10.一种电子设备,其特征在于,所述电子设备为内容分发网络CDN的缓存节点,包括处理器、通信接口、缓存设备和通信总线,其中,处理器,通信接口,缓存设备通过通信总线完成相互间的通信;
缓存设备,用于存放计算机程序;
处理器,用于执行缓存设备上所存放的程序时,实现权利要求1-8任一所述的方法步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一所述的方法步骤。
CN201911282910.2A 2019-12-13 2019-12-13 一种回源方法、装置、电子设备及存储介质 Active CN112995251B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911282910.2A CN112995251B (zh) 2019-12-13 2019-12-13 一种回源方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911282910.2A CN112995251B (zh) 2019-12-13 2019-12-13 一种回源方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112995251A CN112995251A (zh) 2021-06-18
CN112995251B true CN112995251B (zh) 2023-02-03

Family

ID=76332430

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911282910.2A Active CN112995251B (zh) 2019-12-13 2019-12-13 一种回源方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112995251B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116996578B (zh) * 2023-09-27 2024-02-06 联通在线信息科技有限公司 基于内容分发网络的资源处理方法和装置
CN117119052B (zh) * 2023-10-25 2024-01-19 腾讯科技(深圳)有限公司 数据处理方法、装置、电子设备及计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9398066B1 (en) * 2013-03-06 2016-07-19 Amazon Technologies, Inc. Server defenses against use of tainted cache
CN107277561A (zh) * 2016-04-08 2017-10-20 北京优朋普乐科技有限公司 内容分发网络
CN108566370A (zh) * 2018-02-11 2018-09-21 北京奇艺世纪科技有限公司 一种数据回源的方法以及装置
CN109039794A (zh) * 2017-06-08 2018-12-18 北京金山云网络技术有限公司 一种回源路径确定方法及装置
CN110086868A (zh) * 2019-04-25 2019-08-02 北京奇艺世纪科技有限公司 内容推送方法、装置及设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9398066B1 (en) * 2013-03-06 2016-07-19 Amazon Technologies, Inc. Server defenses against use of tainted cache
CN107277561A (zh) * 2016-04-08 2017-10-20 北京优朋普乐科技有限公司 内容分发网络
CN109039794A (zh) * 2017-06-08 2018-12-18 北京金山云网络技术有限公司 一种回源路径确定方法及装置
CN108566370A (zh) * 2018-02-11 2018-09-21 北京奇艺世纪科技有限公司 一种数据回源的方法以及装置
CN110086868A (zh) * 2019-04-25 2019-08-02 北京奇艺世纪科技有限公司 内容推送方法、装置及设备

Also Published As

Publication number Publication date
CN112995251A (zh) 2021-06-18

Similar Documents

Publication Publication Date Title
CN107395683B (zh) 一种回源路径的选择方法及服务器
CN107341160B (zh) 一种拦截爬虫的方法及装置
CN106933871B (zh) 短链接处理方法、装置及短链接服务器
US20190121739A1 (en) Cache optimization
US9444759B2 (en) Service provider registration by a content broker
US8819283B2 (en) Request routing in a networked environment
US10693858B2 (en) CDN-based access control method and related device
CN111327461B (zh) 一种基于cdn系统的域名管理方法、装置、设备及介质
CN112995251B (zh) 一种回源方法、装置、电子设备及存储介质
CN103455478A (zh) 加速网页访问的方法和装置
CN105450780A (zh) 一种cdn系统及其回源方法
CN104580393A (zh) 用于服务器集群系统的扩容方法、装置及服务器集群系统
CN102045403A (zh) 分布式网络数据处理方法和装置及系统
CN109167840B (zh) 一种任务推送方法、节点自治服务器及边缘缓存服务器
US20120054295A1 (en) Method and apparatus for providing or acquiring the contents of a network resource for a mobile device
KR20160143666A (ko) 다이내믹 캐시 할당 및 네트워크 관리
CN103973834A (zh) 一种基于家庭网关的dns域名解析加速方法及装置
CN107347015B (zh) 一种内容分发网络的识别方法、装置及系统
CN104219230A (zh) 识别恶意网站的方法及装置
CN108881516A (zh) 一种调度多cdn服务系统的方法和装置
CN110557464A (zh) Dns解析方法、权威dns服务器和dns解析系统
CN107707593A (zh) 一种提高缓存命中率的动态资源访问加速方法及装置
JP7392168B2 (ja) Cdnにおけるurlリフレッシュ方法、装置、機器及びcdnノード
CN112149017A (zh) 一种网页访问方法、装置、系统、电子设备及存储介质
CN110784534A (zh) 数据服务方法、装置、系统及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant