一种基于FTP协议的多源分布式下载系统技术方案

技术编号:34975010 阅读:25 留言:0更新日期:2022-09-21 14:16
本发明专利技术公开了一种基于FTP协议的多源分布式下载系统,首先提出MP2MS(多点对多服务器)下载技术,使用MP2MS技术,采用去中心化的分布式调度技术提出多源分布式下载技术,实现多个下载客户端同时从多个异构FTP服务器下载同一类文件,提高FTP下载性能和可靠性;其次提出定时下载、延迟下载、文件名时间变量替换、按规则改名技术,提高了下载系统的兼容性和自动化程度;分发技术可以将下载的文件实时推送到多个服务器,可以满足向下游应用主动推送文件的服务需求;最后使用bash开发了多源分布式下载软件,在测试环境和实际生产环境中的应用表明多源分布式下载具有下载速度快,可靠性高的特点。点。点。

【技术实现步骤摘要】
一种基于FTP协议的多源分布式下载系统


[0001]本专利技术属于分布式下载
,具体涉及一种基于FTP协议的多源分布式下载系统。

技术介绍

[0002]下载是指通过网络从其它计算机上获取数据的行为,常用的下载技术有P2S、P2P、P2SP三种。P2P和P2SP下载性能高,但安全性差,存在盗链、版权等问题,在专业数据共享领域使用较少。而P2S采用C/S模式,利用FTP或HTTP协议,其中FTP协议是最早使用的文件传输协议,数据传输可靠,具有用户权限管理功能,数据可以加密,安全性高,在专业数据共享领域广泛使用。但P2S也存在不足之处,比如一个客户端只能连接一个服务器,受网络带宽、服务器限速、服务器连接数限制、服务器和客户端计算机性能等诸多因素限制,性能提升幅度有限,同时客户端和服务器只有一台,存在单点故障,可靠性低。
[0003]为了提高下载性能,CN10574400B、迅雷等、flashget等软件(马晓,柴艳娜,李佳.基于P2SP的网络下载技术分析[J].计算机技术与发展,2014,(6):187

191.)、gridFTP(应宏,刘福明,黄河.GridFTP多种数据传输模式的设计[J].计算机工程与设计,2008,29(15):3895

3897)采用多源下载技术,1个客户端可以从多个服务器下载同一个文件;CN11384000A、CN112199442A等专利实现分布式下载,多个客户端可以从1台服务器下载同一个文件。以上技术虽然可以提升下载性能,但前者只支持多服务器,不支持多客户端,且需要特殊的FTP服务器,还需增加资源索引服务器,兼容性差,后者只支持多客户端,不支持多服务器,多个客户端同时只能下载同一个文件,用于下载大文件,下载的可靠性及性能提升仍然有限。

技术实现思路

[0004]针对上述存在的问题,本专利技术提出MP2MS(多点对多服务器,Multi

Peer to Multi

Server)下载技术,并基于此提供一种基于FTP协议的多源分布式下载系统,能够让多个客户端同时从多个服务器分布式下载文件,从而大幅度提升下载性能,而且消除传统下载技术中的单点故障,提高下载的可靠性。
[0005]实现本专利技术的技术解决方案为:
[0006]一种基于FTP协议的多源分布式下载系统,其特征在于,包括下载任务管理模块、下载调度模块、文件改名模块、文件下载模块、文件分发模块和下载统计模块;
[0007]任务管理模块,用于下载任务的配置管理及任务在集群内的同步;
[0008]下载调度模块,用于将远端服务器上的多个文件通过分布式调度子系统调度到不同的客户端上进行分布式下载;
[0009]文件改名模块,用于根据改名规则对源文件进行重命名;
[0010]文件下载模块,用于调用下载软件进行文件下载;
[0011]文件分发模块,用于下载文件的二次分发,负责将下载的文件推送到需要该文件
的其它服务器或生产系统,且支持同时向多个服务器推送;
[0012]下载统计模块,包括按下载任务统计子模块、按时间段统计子模块,分别用于根据下载任务名称、时段对下载客户端已下载文件的数量和下载量进行统计。
[0013]进一步地,所述下载任务为保存同一类型文件下载信息的配置文件,是多源分布式下载系统的下载对象,每个下载任务均包括服务器信息、下载参数和下载队列;
[0014]服务器信息,包括服务器URL别名和时区;
[0015]下载参数,包括下载命令、并行下载文件数、下载模式(bin或text)、连接模式(主动或被动)、单文件下载最大线程数;
[0016]下载队列,包括源文件路径、文件名匹配模板、文件名唯一标识、改名规则、延迟下载阈值、分发路径,一个下载任务中可以配置多个下载队列,一个队列占一行,如果文件路径、文件名中有具体日期,则用时间变量代替。
[0017]进一步地,所述时间变量是表示时间格式的特殊字符串,共有33个变量,表示33种时间格式,时间变量用于代替任务配置文件中源文件路径、文件名匹配模板、改名规则、分发路径中的具体时间,下载系统启动后,由时间变量替换模块负责将其替换为实际的时间。
[0018]进一步地,所述下载任务管理模块包括任务改名子模块、任务克隆子模块以及任务同步子模块;
[0019]任务改名子模块,用于对下载任务配置文件进行重命名,在重名后,同时修改与其关联的其它配置或日志文件,包括修改crontab计划任务、修改下载日志文件中该任务的名称(保证下载统计结果的连续性)、修改每日下载信息汇总文件名;
[0020]任务克隆子模块,用于根据现存的任务配置文件生成新的配置文件,如果A、B服务器同构(不同服务器上同一文件的目录和文件名均相同),则根据从服务器A下载文件的任务配置快速生成从服务器B下载文件的任务配置,并同步到下载集群内其它主机;
[0021]任务同步子模块,用于快速创建下载集群,首先根据当前主机的计划任务生成另一台主机的计划任务,并针对不同的任务设置不同的启动延时,错开下载程序的启动时间,其次将本机上生效的下载任务配置文件同步到另一台下载主机上。
[0022]进一步地,所述远端多源服务器支持同构,也支持异构,同构指同一文件在多个服务上目录和文件名相同,异构指同一文件在不同的服务器上的路径、文件名不同,同构和异构由所述文件改名模块实现,包括增减前缀子模块、增减后缀子模块、大小写转换子模块、唯一文件改名子模块;
[0023]增减前缀子模块,用于将源文件名增加或去除前缀后生成本地文件名;
[0024]增减后缀子模块,用于将源文件名增加或去除后缀后生成本地文件名;
[0025]大小写转换子模块,用于将源文件名中的英文字母进行大小写转换后生成本地文件名;
[0026]唯一文件改名模块,用于按照文件名中的唯一关键字,将多个不同的源文件名称映射为1个本地文件名。
[0027]进一步地,所述文件下载模块支持定时下载、过期文件下载、延迟下载、并行下载;
[0028]定时下载,每个下载任务由linux crontab管理,定时启动本下载软件下载文件,每个下载任务的启动时间窗口根据文件下载需求设置,所述时间窗口有两个属性,第一个为小时,用于设置下载文件的小时,第二个为分钟,用于设置下载文件的分钟,两种时间格
式均采用linux crontab时间格式;
[0029]过期文件下载,如果文件没有按时上传到服务器或下载软件没有启动造成下载任务错过了下载时间窗口,则可以手动执行下载命令,并设置后退时间,本下载软件可以将下载时间后退到指定时间,然后执行日期变量替换,从而实现下载过期的文件;
[0030]延迟下载,如果下载任务的延迟下载阈值大于0,则计算下载时间与源文件创建时间(进行时区转换后的时间)之差,如果差值大于延迟下载阈值,且小于10天,则下载文件,否则不下载;如果两个客户端分本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FTP协议的多源分布式下载系统,其特征在于,包括下载任务管理模块、下载调度模块、文件改名模块、文件下载模块、文件分发模块和下载统计模块;任务管理模块,用于下载任务的配置管理及任务在集群内的同步;下载调度模块,用于将远端多源服务器上的多个文件通过分布式调度子系统调度到不同的客户端上进行分布式下载;文件改名模块,用于根据改名规则对源文件进行重命名;文件下载模块,用于调用下载软件进行文件下载;文件分发模块,用于下载文件的二次分发,用于将下载的文件推送到需要该下载文件的其它服务器,并支持同时向多个服务器推送;下载统计模块,包括按下载任务统计子模块、按时间段统计子模块,分别用于根据下载任务名称、时段对下载客户端已下载文件的数量和下载量进行统计。2.根据权利要求1所述的一种基于FTP协议的多源分布式下载系统,其特征在于,所述下载任务为保存同一类型文件下载信息的配置文件,是多源分布式下载系统的下载对象,每个下载任务均包括服务器信息、下载参数和下载队列;服务器信息,包括服务器URL别名和时区;下载参数,包括下载命令、并行下载文件数、下载模式、连接模式、单文件下载最大线程数;下载队列,包括源文件路径、文件名匹配模板、文件名唯一标识、改名规则、延迟下载阈值、分发路径,一个下载任务中可以配置多个下载队列,一个下载队列占一行,且文件路径、文件名中若有具体日期,则用时间变量代替。3.根据权利要求2所述的一种基于FTP协议的多源分布式下载系统,其特征在于,所述时间变量是表示时间格式的特殊字符串,且设有多个,每个变量均表示一种时间格式,其用于代替任务配置文件中源文件路径、文件名匹配模板、改名规则、分发路径中的具体时间,下载系统启动后,由时间变量替换模块负责将其替换为实际的时间。4.根据权利要求1所述的一种基于FTP协议的多源分布式下载系统,其特征在于,所述下载任务管理模块包括任务改名子模块、任务克隆子模块以及任务同步子模块;任务改名子模块,用于对下载任务配置文件进行重命名,并在重名后,同时修改与其关联的其它配置或日志文件,包括修改crontab计划任务、修改下载日志文件中该任务的名称、修改每日下载信息汇总文件名;任务克隆子模块,用于根据现存的任务配置文件生成新的配置文件,如果A、B服务器同构,则根据从服务器A下载文件的任务配置快速生成从服务器B下载文件的任务配置,并同步到下载集群内其它主机;任务同步子模块,用于快速创建下载集群,先根据当前主机的计划任务生成另一台主机的计划任务,并针对不同的任务设置不同的启动延时,错开下载程序的启动时间,再将本机上生效的下载任务配置文件同步到另一台下载主机上。5.根据权利要求1所述的一种基于FTP协议的多源分布式下载系统,其特征在于,所述文件改名模块用于支持远端多源服务器的同构和异构,其包括增减前缀子模块、增减后缀子模块、大小写转换子模块、唯一文件改名子模块;增减前缀子模块,用于将源文件名增加或去除...

【专利技术属性】
技术研发人员:陈旭辉王遂缠张鸿刘洋高鹏徐娟孔小怡陈晓峰许竹霞黄芳芳付杰张春燕王旭东
申请(专利权)人:甘肃省气象信息与技术装备保障中心
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1