掌桥专利:专业的专利平台
掌桥专利
首页

一种CDN刷新分片的方法及装置

文献发布时间:2023-06-19 18:58:26


一种CDN刷新分片的方法及装置

技术领域

本发明涉及内容分发网络技术领域,具体而言,涉及一种CDN刷新分片的方法及装置。

背景技术

内容分发网络,其原理是利用CDN各个层级的节点,将远端源站的资源缓存到离用户更近的节点,用户可以就近获取资源,从而达到减少源站压力,提高访问速度的目的。

目前各个CDN厂商,在处理视频、下载类等大文件,尤其包含有大小不一的Range请求时,需要在正确响应客户请求的前提下,尽可能减少回源流量,提高命中率,一般都会采用分片的方式:分片回源、分片存储及分片刷新。

在实际操作中,分片刷新的过程一般做法是,接收到刷新请求后,通过刷新任务提供的URL,找到并读取索引片的内容,从而直接得到或者计算得到所有分片的URL及存储信息,然后实际执行刷新操作,达到刷新分片的目的。其中,索引片是一个文件,包含有完整文件的存储信息以及各个分片文件的URL。由于索引片文件数量较多,内容较大,不适合存储在内存中,一般存储在磁盘之中。在实际工作中发现,以上介绍的分片刷新方式,在刷新请求并发较高时,读取索引片的操作会增加磁盘负载,严重时会影响到正常业务请求。

发明内容

为了解决上述问题,本申请实施例提供了一种CDN刷新分片的方法及装置。

第一方面,本申请实时例提供了一种CDN刷新分片的方法,包括如下步骤:

S1:接收目标分片刷新请求,将分片对应的索引片删除;

S2:接收目标分片业务请求,基于业务逻辑查询分片对应的索引片是否存在,如果索引片不存在,则在该分片上设置标记位;

S3:基于回源逻辑发起回源请求,获取完整文件的大小,根据完整文件的大小拼装所有分片的URL;

S4:根据所有分片的URL分别获取所有分片的元信息,如果在分片上设有标记位则根据分片的元信息执行刷新操作。

优选的,步骤S1中具体包括:

接收目标分片的刷新请求,根据接收的刷新请求获取刷新任务中对应的URL,根据该URL从磁盘中找到索引片,将该索引片删除。

优选的,步骤S3中具体包括:在未查询到索引片时响应业务请求,采取回源拉取,接收源站响应,得到文件总长度,基于文件总长度和分片大小计算组装得到所有分片的URL。

优选的,通过内存操作删除索引片。

优选的,通过内存操作查询索引片。

第二方面,本申请实施例提供了一种CDN刷新分片的装置,包括

删除索引模块,用以接收目标分片刷新请求,将分片对应的索引片删除;

查询索引模块,用以接收目标分片业务请求,基于业务逻辑查询分片对应的索引片是否存在,如果索引片不存在,则在该分片上设置标记位;

分片拼装模块,用以基于回源逻辑发起回源请求,获取完整文件的大小,根据完整文件的大小拼装所有分片的URL;

刷新执行模块,用以根据所有分片的URL分别获取所有分片的元信息,如果在分片上设有标记位则根据分片的元信息执行刷新操作。

具体的,所述删除索引模块包括:接收目标分片的刷新请求,根据接收的刷新请求获取刷新任务中对应的URL,根据该URL从磁盘中找到索引片,将该索引片删除。

具体的,所述分片拼装模块包括:在未查询到索引片时响应业务请求,采取回源拉取,接收源站响应,得到文件总长度,基于文件总长度和分片大小计算组装得到所有分片的URL。

第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面或第一方面的任意一种可能的实现方式提供的方法的步骤。

第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面的任意一种可能的实现方式提供的方法的步骤。

本发明的有益效果为:规避了原有方法中的磁盘读取操作,不会对磁盘负载有任何影响;刷新请求高并发时,磁盘不再成为瓶颈,不会影响到正常业务请求。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种CDN刷新分片的方法的流程示意图;

图2为本申请实施例提供的一种CDN刷新分片的装置的结构示意图;

图3为本申请实施例提供的一种电子设备的结构示意图;

图4为本申请实施例提供的一种CDN刷新分片的方法中采用本申请方法进行分片刷新的流程示意图;

图5为本申请实施例提供的一种CDN刷新分片的方法中采用本申请方法进行分片刷新时测试环境的示意图;

图6为本申请实施例提供的一种CDN刷新分片的方法中采用现有技术进行分片刷新的流程示意图;

图7为本申请实施例提供的一种CDN刷新分片的方法中采用现有技术进行分片刷新时磁盘的表现图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

在下述介绍中,术语“第一”、“第二”仅为用于描述的目的,而不能理解为指示或暗示相对重要性。下述介绍提供了本申请的多个实施例,不同实施例之间可以替换或者合并组合,因此本申请也可认为包含所记载的相同和/或不同实施例的所有可能组合。因而,如果一个实施例包含特征A、B、C,另一个实施例包含特征B、D,那么本申请也应视为包括含有A、B、C、D的一个或多个所有其他可能的组合的实施例,尽管该实施例可能并未在以下内容中有明确的文字记载。

下面的描述提供了示例,并且不对权利要求书中阐述的范围、适用性或示例进行限制。可以在不脱离本申请内容的范围的情况下,对描述的元素的功能和布置做出改变。各个示例可以适当省略、替代或添加各种过程或组件。例如所描述的方法可以以所描述的顺序不同的顺序来执行,并且可以添加、省略或组合各种步骤。此外,可以将关于一些示例描述的特征组合到其他示例中。

请参阅图1、4、5、6、7。图1是本申请实施例提供的一种CDN刷新分片的方法的流程示意图,图4为本申请实施例提供的一种CDN刷新分片的方法中采用本申请方法进行分片刷新的流程示意图,图5为本申请实施例提供的一种CDN刷新分片的方法中采用本申请方法进行分片刷新时测试环境的示意图,图6为本申请实施例提供的一种CDN刷新分片的方法中采用现有技术进行分片刷新的流程示意图,图7为本申请实施例提供的一种CDN刷新分片的方法中采用现有技术进行分片刷新时磁盘的表现图。在本申请实施例中,方法包括如下步骤:

S1:接收目标分片刷新请求,将分片对应的索引片删除;

S2:接收目标分片业务请求,基于业务逻辑查询分片对应的索引片是否存在,如果索引片不存在,则在该分片上设置标记位;

S3:基于回源逻辑发起回源请求,获取完整文件的大小,根据完整文件的大小拼装所有分片的URL;

S4:根据所有分片的URL分别获取所有分片的元信息,如果在分片上设有标记位则根据分片的元信息执行刷新操作。

在本申请实施例中,发明人在实际工作中发现,现有技术的分片刷新方式,在刷新请求并发较高时,读取索引片的操作会增加磁盘负载,严重时会影响到正常业务请求。如图7是高并发的刷新请求压测时,某块磁盘的表现,可见读取次数明显增加,负载显著升高。

鉴于现有的分片刷新性能瓶颈,为了满足分片刷新任务的高并发需求,减少刷新操作对磁盘负载的影响,现提出一种新的分片刷新方法,目的在于满足分片刷新任务高并发的需求,同时减少刷新操作对磁盘负载的影响,更好地解决分片刷新问题。

在一种可实施方式中,步骤S1中具体包括:

接收目标分片的刷新请求,根据接收的刷新请求获取刷新任务中对应的URL,根据该URL从磁盘中找到索引片,将该索引片删除。

在一种可实施方式中,步骤S3中具体包括:在未查询到索引片时响应业务请求,采取回源拉取,接收源站响应,得到文件总长度,基于文件总长度和分片大小计算组装得到所有分片的URL。

在一种可实施方式中,通过内存操作删除索引片。

在一种可实施方式中,通过内存操作查询索引片。

在本申请实施例中,一种高效的CDN刷新分片的方法,具体步骤介绍如下:

1) 收到刷新请求后,不再查询索引片是否存在,也不再读取索引片的文件内容,直接删除索引片的内存索引,删除索引是内存操作,不会影响到磁盘。

2) 当再次收到业务请求时,查询索引片文件是否存在,若索引片不存在,则设置特殊标记,标识缓存中没有该文件或者被刷新过,查询索引片是否存在也是内存操作,不会影响到磁盘

3) 在没有索引片的情况下响应业务请求,必然需要回源拉取,那么收到源站响应后,即可得知该文件的Content-Length,即文件总长度

4) 在已知文件总长度和分片大小已确定的情况下,即可通过一定规则计算组装得出所有分片的URL

5) 在得到分片的元信息后,若之前设置过特殊标记,则实际执行刷新操作

综上可知,本发明的主要思路是,收到分片刷新请求后,不再查询索引片是否存在,也不再读取索引片内容,直接删除索引片;在该文件再次被客户请求后,借助本身的业务逻辑和回源逻辑,进行下列操作:查询索引片是否存在、设置特殊标记、获取其余分片元信息、执行刷新分片操作。

本发明的刷新方法,在步骤1时,若索引片不存在,会增加一次内存操作,但是可以在达到原有刷新目的的同时,规避掉原有方法中的磁盘读取操作。

本发明的CDN刷新分片的方法,将现有方法中的分片刷新的流程一拆为二,在刷新分片请求来时,获取刷新任务中的URL,不做查询,无论存在与否直接执行索引片的删除操作,该索引不再能被查询到;在真实业务请求来时,为了响应客户,按照正常业务逻辑会查询该索引,若已执行过刷新操作,将不会被查询到,意味着该文件未被请求过或者执行过刷新操作,在该方法中,统统默认为执行过刷新操作,并设置标记,标识该状态;按照正常业务逻辑,会分片回源请求该文件,从回源响应中可以获取到完整文件的大小;根据完整文件大小和已知的分片大小,通过简单计算拼装出各个分片的URL;根据各个分片的URL,执行分片刷新操作。

在上述实施例中,删除索引和查询索引均为内存操作,而其它如回源逻辑均复用业务请求的本身逻辑,规避了原有方法中的读取磁盘操作,刷新操作将不再增加磁盘负载。

在成功执行上述实施例后,压测表现较以前有明显改善。如图5是测试环境中,刷新分片请求高并发压测时的磁盘监控,sda为系统和日志盘(可忽略),其它数据盘并没有因刷新分片导致负载变化。本申请刷新分片只触发内存删除操作,通过默认已执行过刷新操作和设置标记位的方法,将真正的刷新操作附着在业务请求的正常业务逻辑中,规避掉刷新分片的磁盘读取。

下面将结合附图2,对本申请实施例提供的一种CDN刷新分片的装置进行详细介绍。需要说明的是,附图2所示的一种CDN刷新分片的装置,用于执行本申请图1所示实施例的方法,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请图1所示的实施例。

请参见图2,图2是本申请实施例提供的一种CDN刷新分片的装置的结构示意图。如图2所示,所述装置包括

删除索引模块201,用以接收目标分片刷新请求,将分片对应的索引片删除;

查询索引模块202,用以接收目标分片业务请求,基于业务逻辑查询分片对应的索引片是否存在,如果索引片不存在,则在该分片上设置标记位;

分片拼装模块203,用以基于回源逻辑发起回源请求,获取完整文件的大小,根据完整文件的大小拼装所有分片的URL;

刷新执行模块204,用以根据所有分片的URL分别获取所有分片的元信息,如果在分片上设有标记位则根据分片的元信息执行刷新操作。

在一种可实施方式中,所述删除索引模块201包括:接收目标分片的刷新请求,根据接收的刷新请求获取刷新任务中对应的URL,根据该URL从磁盘中找到索引片,将该索引片删除。

在一种可实施方式中,所述分片拼装模块203包括:在未查询到索引片时响应业务请求,采取回源拉取,接收源站响应,得到文件总长度,基于文件总长度和分片大小计算组装得到所有分片的URL。

在本申请实施例中,将现有方法中的分片刷新的流程一拆为二,刷新任务只触发删除索引片,业务请求触发真正的分片刷新操作,业务请求查询不到索引片,均默认为该文件之前执行过分片刷新操作,并设置标记位标识该状态,本申请提到的删除、查询均为内存操作,替代现有方法中的磁盘操作。

本领域的技术人员可以清楚地了解到本申请实施例的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”、“模块”、“部”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列(Field-Programmable Gate Array,FPGA)、集成电路(Integrated Circuit,IC)等。

本申请实施例的各处理单元和/或模块,可通过实现本申请实施例所述的功能的模拟电路而实现,也可以通过执行本申请实施例所述的功能的软件而实现。

参见图3,其示出了本申请实施例所涉及的一种电子设备的结构示意图,该电子设备可以用于实施图1所示实施例中的方法。如图3所示,电子设备300可以包括:至少一个中央处理器301,至少一个网络接口304,用户接口303,存储器305,至少一个通信总线302。

其中,通信总线302用于实现这些组件之间的连接通信。

其中,用户接口303可以包括显示屏(Display)、摄像头(Camera),可选用户接口303还可以包括标准的有线接口、无线接口。

其中,网络接口304可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。

其中,中央处理器301可以包括一个或者多个处理核心。中央处理器301利用各种接口和线路连接整个电子设备300内的各个部分,通过运行或执行存储在存储器305内的指令、程序、代码集或指令集,以及调用存储在存储器305内的数据,执行终端300的各种功能和处理数据。可选的,中央处理器301可以采用数字信号处理(Digital SignalProcessing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。中央处理器301可集成中央中央处理器(Central Processing Unit,CPU)、图像中央处理器(GraphicsProcessing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到中央处理器301中,单独通过一块芯片进行实现。

其中,存储器305可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器305包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器305可用于存储指令、程序、代码、代码集或指令集。存储器305可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器305可选的还可以是至少一个位于远离前述中央处理器301的存储装置。如图3所示,作为一种计算机存储介质的存储器305中可以包括操作系统、网络通信模块、用户接口模块以及程序指令。

在图3所示的电子设备300中,用户接口303主要用于为用户提供输入的接口,获取用户输入的数据;而中央处理器301可以用于调用存储器305中存储的一种CDN刷新分片的应用程序,并具体执行以下操作:

S1:接收目标分片刷新请求,将分片对应的索引片删除;

S2:接收目标分片业务请求,基于业务逻辑查询分片对应的索引片是否存在,如果索引片不存在,则在该分片上设置标记位;

S3:基于回源逻辑发起回源请求,获取完整文件的大小,根据完整文件的大小拼装所有分片的URL;

S4:根据所有分片的URL分别获取所有分片的元信息,如果在分片上设有标记位则根据分片的元信息执行刷新操作。

本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或适合于存储指令和/或数据的任何类型的媒介或设备。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

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

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(Read-Only Memory, ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。

以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。

技术分类

06120115758833