一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种内容分发网络预热方法、系统、电子设备及存储介质与流程

2022-03-09 01:29:22 来源:中国专利 TAG:


1.本技术实施例涉及互联网技术领域,尤其涉及一种内容分发网络预热方法、系统、电子设备及存储介质。


背景技术:

2.目前,互相网很多应用场景都涉及到内容分发网络(cdn,content delivery network)的应用,通过构建内容分发网络节点,将云端存储的文件资源预先上传至内容分发网络节点,以便于用户直接就近访问内容分发网络节点的文件资源,而无需从云端进行文件资源访问,以此来优化用户体验,提升数据访问效率。在此背景下,为了确保用户能够直接通过内容分发网络节点下载文件资源,需要一个独立的预热服务节点从云端下载文件资源,并将文件资源上传至内容分发网络节点,即内容分发网络预热。
3.但是,传统的预热服务节点在进行内容分发网络预热时,其线程执行周期较长,容易影响预热服务的性能和内存,进而影响预热服务的稳定性。


技术实现要素:

4.本技术实施例提供一种内容分发网络预热方法、系统、电子设备及存储介质,能够实现内容分发网络预热的灵活管理,提升预热服务性能和鲁棒性,解决内容分发网络预热服务不稳定的技术问题。
5.在第一方面,本技术实施例提供了一种内容分发网络预热方法,包括:
6.根据各个目标文件的文件尺寸分别构建所述目标文件的下载任务,或者所述目标文件的各个分块文件的下载任务,为各个所述下载任务分配独立的文件下载线程;
7.基于所述文件下载线程从云端并行下载所述目标文件或者多个所述分块文件,若所述文件下载线程下载的是所述分块文件,将对应的各个所述分块文件合并为一个所述目标文件;
8.为各个所述目标文件分配独立的文件上传线程,基于所述文件上传线程将各个所述目标文件并行上传至内容分发网络节点。
9.在第二方面,本技术实施例提供了一种内容分发网络预热系统,包括:
10.构建模块,用于根据各个目标文件的文件尺寸分别构建所述目标文件的下载任务,或者所述目标文件的各个分块文件的下载任务,为各个所述下载任务分配独立的文件下载线程;
11.下载模块,用于基于所述文件下载线程从云端并行下载所述目标文件或者多个所述分块文件,若所述文件下载线程下载的是所述分块文件,将对应的各个所述分块文件合并为一个所述目标文件;
12.上传模块,用于为各个所述目标文件分配独立的文件上传线程,基于所述文件上传线程将各个所述目标文件并行上传至内容分发网络节点。
13.在第三方面,本技术实施例提供了一种电子设备,包括:
14.存储器以及一个或多个处理器;
15.所述存储器,用于存储一个或多个程序;
16.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的内容分发网络预热方法。
17.在第四方面,本技术实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的内容分发网络预热方法。
18.本技术实施例根据各个目标文件的文件尺寸,构建目标文件的各个分块文件的下载任务,为各个下载任务分配独立的文件下载线程;基于文件下载线程从云端并行下载多个分块文件,将对应的各个分块文件合并为一个目标文件;为各个目标文件分配独立的文件上传线程,基于文件上传线程将各个目标文件并行上传至内容分发网络节点。采用上述技术手段,通过文件分块并配置独立文件下载线程进行文件下载,可以缩短线程的运行周期,避免线程长期运行而导致内存占用的情况,进而保障系统性能和内存的稳定性和灵活性,实现内容分发网络预热的灵活管理。
附图说明
19.图1是本技术实施例提供的一种内容分发网络预热方法的流程图;
20.图2是本技术实施例中的下载任务构建流程图;
21.图3是本技术实施例中的文件合并流程图;
22.图4是本技术实施例中的内容分发网络预热流程图;
23.图5是本技术实施例提供的一种内容分发网络预热系统的结构示意图;
24.图6是本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
25.为了使本技术的目的、技术方案和优点更加清楚,下面结合附图对本技术具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本技术,而非对本技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本技术相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
26.本技术提供的内容分发网络预热方法,旨在进行内容分发网络预热时,根据目标文件的文件尺寸适应性构建下载任务,对于文件尺寸较大的目标文件,通过文件切分,以根据各个分块文件进行文件下载线程的配置,并通过多个文件下载线程并行进行文件下载。以此可以缩短文件下载线程的运行周期,同时可以提升文件预热效率,避免系统内存长时间被占用。而对于传统的内容分发网络预热方式,其文件一般是整个下载、整个缓存以及整个上传的简单流程,当文件体积较大且数量较大的情况下,对于预热服务节点的性能和内存都是一个极大的考验,很容易导致数据积压乃至系统程序崩溃。以互联网内容分发应用
场景为例,整个文件需要下载完才上传到内容分发网络节点服务器,而且线程的运行周期是从文件下载开始到上传结束的,容易影响系统服务的灵活性。另一方面,由于预热的内容源巨大且相当一部分是大容量的视频资源,所以在上传完成前文件资源都会在预热节点的内存里整块保存,很可能导致服务内存溢出,从而造成系统崩溃,系统稳定性得不到保障的情况。基于此,提供本技术实施例的一种内容分发网络预热方法,以解决现有内容分发网络预热服务不稳定的技术问题。
27.实施例:
28.图1给出了本技术实施例提供的一种内容分发网络预热方法的流程图,本实施例中提供的内容分发网络预热方法可以由内容分发网络预热设备执行,该内容分发网络预热设备可以通过软件和/或硬件的方式实现,该内容分发网络预热设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。一般而言,该内容分发网络预热设备可以是电脑,服务器主机等内容分发网络的预热节点设备。
29.下述以该内容分发网络预热设备为执行内容分发网络预热方法的主体为例,进行描述。参照图1,该内容分发网络预热方法具体包括:
30.s110、根据各个目标文件的文件尺寸,构建目标文件的各个分块文件的下载任务,为各个下载任务分配独立的文件下载线程。
31.本技术实施例在进行内容分发网络预热时,基于待预热目标文件的文件尺寸进行下载任务的构建,同时对应每个下载任务配置相应的文件下载线程,以便于在下载文件资源时,并行运行各个线程,在提升文件下载效率的同时,缩短了文件下载线程的运行周期,进而提升内容分发网络预热节点的稳定性。
32.具体地,在进行文件资源下载时,通过一个下载服务将需要预热的文件资源从云端下载至该内容分发网络预热设备。下载服务主要负责从并行下载文件资源,并把整个文件或分块文件的文件资源存储在磁盘中。在执行预热操作时,通过定期轮循数据库,获取各个目标文件的数据记录,数据记录用于下载对应的目标文件,目标文件在存储至云端时,同步存储数据记录至数据库。在此之前,云端在存储文件资源时,会同步在内容分发网络预热设备存储文件资源的数据记录,以便于后续内容分发网络预热设备根据数据记录获取文件资源的存储位置,进而进行目标文件的下载。例如,对于用户生产的视频内容,会同步上传至云端存储。并且,在存储视频内容的时候,会将视频内容的访问地址、文件尺寸、类型等信息作为数据记录存储至内容分发网络预热设备的数据库中,将其对应的文件资源作为待预热数据,以便于后续预热过程中,通过数据库存储的数据记录获取目标文件的访问地址,基于该访问地址从云端下载相应的文件资源。
33.进一步地,基于数据库预先存储的数据记录,下载服务先通过定期轮循数据库,判断数据库是否存在新增的数据记录,若是,则将该数据记录对应的文件资源确定为待预热数据,以此确定当前需要下载的文件资源,定义这部分文件资源为目标文件。进而通过提取该数据记录,基于该数据记录获知目标文件的大文件尺寸,以便于根据文件尺寸判断是否对目标文件进行分块,基于分块文件分别进行下载任务的构建。
34.其中,参照图2,基于目标文件的文件尺寸进行下载任务构建的流程包括:
35.s1101、将目标文件的文件尺寸比对设定的尺寸阈值;
36.s1102、若目标文件的文件尺寸小于尺寸阈值,构建目标文件的下载任务;若目标
文件的尺寸达到尺寸阈值,将目标文件切分为多个分块文件,构建各个分块文件的下载任务。
37.本技术实施例通过预先构建一个目标文件的尺寸阈值,以便于根据尺寸阈值判断是否进行目标文件切分。基于目标文件的数据记录确定文件尺寸后,将目标文件比对该尺寸阈值,若文件尺寸小于该尺寸阈值,表明该文件相对较小,可以整个下载,则基于整个目标文件进行下载任务构建。基于下载任务直接将整个目标文件下载到完整的目标文件目录中,并在目标文件目录中,将各个完整的目标文件以“文件名-complete”命名。反之,若目标文件的文件尺寸达到该尺寸阈值,表明该文件尺寸相对较大,需要对目标文件进行切分,对切分后的各个分块文件分别构建下载任务进行下载。需要说明的是,本技术实施例的尺寸阈值可根据实际目标文件的文件下载线程运行时间确定,通过设置相应的文件尺寸,可以确保文件下载线程在执行以此构建的各个下载任务时,不会出现长时间运行的情况,保障目标文件的下载效率,及时释放系统内存,以此来提升内容分发网络预热节点的稳定性和运行性能。
38.具体地,本技术实施例在对目标文件进行切分时,基于分块文件的标准尺寸信息以及目标文件的文件尺寸切分目标文件,得到对应的多个分块文件,并为分块文件配置命名信息,命名信息包括目标文件的文件名以及分块文件的文件序号。通过目标文件的文件尺寸除以分块文件的标准尺寸,得到的值向上取整,即可得到分块文件的切分数量。举例而言,若目标文件的文件尺寸为5,分块文件的标准尺寸信息为2,则通过两者相除,得到数值2.5(文件尺寸/标准尺寸信息=5/2=2.5),向上取整得到分块文件的切分数量为3,以此确定分块文件的切分数量。一般而言,分块文件的标准尺寸信息可以等于目标文件的尺寸阈值。根据实际文件分块需求,也可适应性调整分块文件的标准尺寸信息的大小。可以理解的是,若是要缩短文件下载线程的运行时间,则可以缩小分块文件的标准尺寸信息,以缩小文件下载线程的粒度,避免单线程长期运行对系统性能的影响。
39.对于完成切分的各个分块文件,从1开始递增编制文件序号。以便于根据文件序号下载目标文件的指定的分块文件。以此可以将文件尺寸较大的文件彻底切分开来,使下载服务对于每一个分块文件都配置单独的文件下载线程负责处理。并且,对于下载完成后的各个分块文件,把分块文件保存在磁盘或共享存储的分块文件目录中,分块文件以“文件名-文件序号”命名。可选的,下载服务可以对应分块文件目录设置一个“文件名-是否全下载完成”的关系表,待某目标文件所有分块文件下载完成后,将这一记录写入待合并数据表。以便于触发下一个文件合并线程运行,进行分块文件的合并。此外,无论是分块文件或是完整的目标文件,都可以设置一个待预热数据包记录其下载状态,以此可以便于在文件下载完成后,使对应文件下载线程马上退出,其占用的内存也马上释放,触发下一个线程的运行,以此可以降低系统内存溢出的可能性,保证了系统服务的稳定。
40.进一步地,基于完整目标文件或者各个分块文件进行下载任务构建之后,本技术实施例对应各个下载任务进行文件下载线程的构建。其中,在构建各个下载任务的下载线程时,若是完整目标文件,则直接配置一个文件下载线程,若是多个分块文件,则通过确定一个目标文件中分块文件的文件数量,将文件数量比对设定数量阈值;若文件数量小于或等于数量阈值,以文件数量配置文件下载线程;若文件数量大于数量阈值,基于文件数量的设定比例配置文件下载线程。需要说明的是,本技术实施例在下载目标文件时,是基于实时
配置的多个文件下载线程并发运行执行文件下载任务的。而对于尺寸较大的目标文件而言,若所有分块文件都同时配置一个文件下载线程,则并发运行的文件下载线程较多,会影响到其他目标文件的下载,导致所有线程都集中处理一个目标文件的分块文件下载,影响系统灵活性。基于此,本技术实施例通过构建一个线程分配服务,以在下载服务需要启动大量文件线程进行并发处理时,不会一次性为某个目标文件的所有分块文件分别都配置文件下载线程,而是通过请求线程分配服务,由线程分配服务预设定的分配规则来进行文件下载线程分配。在目标文件的多个分块文件开始下载时,将目标文件的文件名以及其待下载分块文件的文件数量作为参数调用线程分配服务,线程分配服务根据预设定的数量阈值,假如文件数量大于数量阈值,返回文件数量的设定比例(1/n,n表示文件数量)作为该目标文件的文件下载线程的配置数量;当文件数量小于数量阈值时,直接返回分块文件的文件数量作为该目标文件的文件下载线程的配置数量。以此可以在有限的线程资源里,把线程资源分配在不同的文件资源上而不是集中先处理完一个文件再轮到下一个。可以在不降低并发度的前提下,减轻对下游服务的流量峰值,提高灵活性,更增强了系统的稳定性。可以理解的是,为了保障系统下载服务和上传服务流量均衡,避免上、下游服务的流量峰值,则基于上、下游服务的流量均衡原则,设置该设定比例,以确保文件下载线程的合理分配,提升系统的运行性能。
41.s120、基于文件下载线程从云端并行下载多个分块文件,将对应的各个分块文件合并为一个目标文件。
42.基于各个文件下载线程完成文件下载任务后,对于完整的目标文件,则直接将下载状态更新至目标文件目录,以便于后续通过文件上传服务将目标文件上传至内容分发网络节点。而对于各个分块文件,则需要进一步对属于同一目标文件的各个分块文件进行合并。其中,参照图3,分块文件的合并流程包括:
43.s1201、选取命名信息中文件名相同的各个分块文件;
44.s1202、按照命名信息的文件序号将相邻的两个分块文件进行递归合并,直至合并得到对应的目标文件。
45.本技术通过一个合并服务进行各个分块文件的合并。合并服务主要负责从分块文件目录中读入分块文件进行合并,并把合并后的文件存储在磁盘中。合并服务先通过定期轮训待合并数据表,根据列表记录读入一系列分块文件,根据分块文件的命名规则,可以知道分块文件所属的目标文件及对应的先后顺序。以此即可将属于同一目标文件的不同分块文件按照文件序号进行合并。
46.其中,在进行文件合并时,对应每一次文件合并操作分配独立的文件合并线程,基于多个文件合并线程并行执行文件合并操作,得到目标文件。按照文件序号,合并服务采用每相邻两个分块文件分配一个文件合并线程的方式,基于多个文件合并线程并发进行文件合并,每次合并完成后,继续以相邻块首个文件序号作为合并后的文件号,在该轮次所有合并线程完成合并后,再递归启动下一合并流程。通过不断的递归,最终合并成完整的目标文件,将目标文件信息写入目标文件目录,并写入待上传数据表。以便于后续根据信息记录进行执行文件上传任务。
47.s130、为各个目标文件分配独立的文件上传线程,基于文件上传线程将各个目标文件并行上传至内容分发网络节点。
48.基于合并完成或者已经下载完成的目标文件,本技术实施例通过一个上传服务将各个目标文件上传至内容分发网络节点。其中,上传服务主要负责从目标文件目录中确定读取下载及合并的目标文件,进而把文件上传到内容分发网络节点。上传服务通过定期轮训待上传数据表读入完整目标文件信息,根据完整目标文件信息从目标文件目录获取目标文件进行上传,上传的过程同样也是多线程并发上传,一个线程负责一个目标文件。目标文件完成上传后,根据上传结果更新待预热数据表,以便于将完成上传的目标文件从待预热数据表删除。
49.示例性的,参照图4,对应一个目标文件,在进行文件资源预热时,通过定期轮循数据库确定待下载目标文件,将待下载目标文件信息更新至待预热数据表。进而通过一个下载服务定期轮循待预热数据表,确定需要下载的目标文件,根据目标文件的文件尺寸进行分块下载或者整个文件下载。对于下载完成的分块文件,写入分块文件目录,并将分块文件信息更新至待合并数据表。对于下载完成的目标文件,写入目标文件目录。进而通过合并服务定期轮循待合并数据表,确定待合并分块文件信息,从分块文件目录读入分块文件进行文件合并,将合并后的目标文件放入目标文件目录,并更新文件信息至待上传数据表。最终,通过上传服务将目标文件上传至内容分发网络节点。在文件下载、合并和上传的各个阶段,都会设置相应的数据表进行文件状态标记,在上传完成后,会把待预热数据表的对应记录更新为完成状态。通过切分为下载、合并和上传服务,业务逻辑解耦,使整个数据流呈漏斗式设计,细化各个环节的处理,使系统性能更高,鲁棒性更强。通过引入线程分配服务,降低下载服务对下游服务的流量峰值,同时保持了系统的高度并发性,在保证性能的同时大大提高了系统的稳定性。通过下载服务,其文件下载线程粒度变小,与分块文件对应,大大提升线程并发度,缩短线程运行周期,大大降低内存溢出的可能性。在合并服务中,通过并发递归合并,使数据驻留内存时间变短,降低内存溢出概率。
50.上述,根据各个目标文件的文件尺寸,构建目标文件的各个分块文件的下载任务,为各个下载任务分配独立的文件下载线程;基于文件下载线程从云端并行下载多个分块文件,将对应的各个分块文件合并为一个目标文件;为各个目标文件分配独立的文件上传线程,基于文件上传线程将各个目标文件并行上传至内容分发网络节点。采用上述技术手段,通过文件分块并配置独立文件下载线程进行文件下载,可以缩短线程的运行周期,避免线程长期运行而导致内存占用的情况,进而保障系统性能和内存的稳定性和灵活性,实现内容分发网络预热的灵活管理。
51.在上述实施例的基础上,图5为本技术提供的一种内容分发网络预热系统的结构示意图。参考图5,本实施例提供的内容分发网络预热系统具体包括:构建模块21、下载模块22和上传模块23。
52.其中,构建模块21用于根据各个目标文件的文件尺寸,构建目标文件的各个分块文件的下载任务,为各个下载任务分配独立的文件下载线程;
53.下载模块22用于基于文件下载线程从云端并行下载多个分块文件,将对应的各个分块文件合并为一个目标文件;
54.上传模块23用于为各个目标文件分配独立的文件上传线程,基于文件上传线程将各个目标文件并行上传至内容分发网络节点。
55.具体地,构建模块21包括:
56.轮循单元,用于定期轮循数据库,获取各个目标文件的数据记录,数据记录用于下载对应的目标文件,目标文件在存储至云端时,同步存储数据记录至数据库。
57.任务构建单元,用于将目标文件的文件尺寸比对设定的尺寸阈值;若目标文件的文件尺寸小于尺寸阈值,构建目标文件的下载任务;若目标文件的尺寸达到尺寸阈值,将目标文件切分为多个分块文件,构建各个分块文件的下载任务。
58.文件切分单元,用于基于分块文件的标准尺寸信息以及目标文件的文件尺寸切分目标文件,得到对应的多个分块文件,并为分块文件配置命名信息,命名信息包括目标文件的文件名以及分块文件的文件序号。
59.线程配置单元,用于确定一个目标文件中分块文件的文件数量,将文件数量比对设定数量阈值;若文件数量小于或等于数量阈值,以文件数量配置文件下载线程;若文件数量大于数量阈值,基于文件数量的设定比例配置文件下载线程。
60.下载模块22包括:
61.合并单元,用于选取命名信息中文件名相同的各个分块文件;按照命名信息的文件序号将相邻的两个分块文件进行递归合并,直至合并得到对应的目标文件。
62.合并线程配置单元,用于对应每一次文件合并操作分配独立的文件合并线程,基于多个文件合并线程并行执行文件合并操作,得到目标文件。
63.上述,根据各个目标文件的文件尺寸,构建目标文件的各个分块文件的下载任务,为各个下载任务分配独立的文件下载线程;基于文件下载线程从云端并行下载多个分块文件,将对应的各个分块文件合并为一个目标文件;为各个目标文件分配独立的文件上传线程,基于文件上传线程将各个目标文件并行上传至内容分发网络节点。采用上述技术手段,通过文件分块并配置独立文件下载线程进行文件下载,可以缩短线程的运行周期,避免线程长期运行而导致内存占用的情况,进而保障系统性能和内存的稳定性和灵活性,实现内容分发网络预热的灵活管理。
64.本技术实施例提供的内容分发网络预热系统可以用于执行上述实施例提供的内容分发网络预热方法,具备相应的功能和有益效果。
65.在上述实际上例的基础上,本技术实施例还提供了一种电子设备,参照图6,该电子设备包括:处理器31、存储器32、通信模块33、输入装置34及输出装置35。存储器32作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本技术任意实施例所述的内容分发网络预热方法对应的程序指令/模块(例如,内容分发网络预热系统中的构建模块、下载模块和上传模块)。通信模块33用于进行数据传输。处理器通过运行存储在存储器中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的内容分发网络预热方法。输入装置34可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置35可包括显示屏等显示设备。上述提供的电子设备可用于执行上述实施例提供的内容分发网络预热方法,具备相应的功能和有益效果。
66.在上述实施例的基础上,本技术实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种内容分发网络预热方法,存储介质可以是任何的各种类型的存储器设备或存储设备。当然,本技术实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的内容分
发网络预热方法,还可以执行本技术任意实施例所提供的内容分发网络预热方法中的相关操作。
67.上述仅为本技术的较佳实施例及所运用的技术原理。本技术不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本技术的保护范围。因此,虽然通过以上实施例对本技术进行了较为详细的说明,但是本技术不仅仅限于以上实施例,在不脱离本技术构思的情况下,还可以包括更多其他等效实施例,而本技术的范围由权利要求的范围决定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献