一种海量文件传输方法及系统与流程

文档序号:24046306发布日期:2021-02-23 18:53阅读:78来源:国知局
一种海量文件传输方法及系统与流程

[0001]
本发明涉及文件传输技术领域,具体地涉及一种海量文件传输方法及系统。


背景技术:

[0002]
随着云计算、大数据、物联网的快速发展,企业获取数据量呈指数级急剧增长,海量文件随之产生。海量文件是企业业务基石,也是从中挖掘商业价值的宝库。特别是大数据行业的业务特点,数据生产者会实时产生一些或大或小数据文件并且通常同时储存在同一个目录,由于操作系统的文件存储到磁盘空间是不连续的,导致操作系统在文件夹枚举海量文件时的时间开销是很大的。
[0003]
一直以来海量文件上传下载没有专用的工具,传统ftp已无法满足要求。ftp在对传输每一个文件时其传输管理开销是固定的,这就会导致其在传输海量文件时,文件管理需求大大增加。ftp使用tcp协议,是可靠的传输协议,这给数据完整提供保证,但也带来传输效率低的问题。为了保证数据传输性能低下,即使使用多线程并发,也会受限于ftp可靠传输协议导致传输效率低。大数据、云计算、物联网等行业。文件生产者生产的文件数量是十分巨大的。在这种情况下,ftp等传输工具根本无法传输,文件传输共享十分困难。
[0004]
为了解决海量文件传输问题,企业传输作法是采用压缩后多线程传输再解压的过程,这样一来受限于大文件压缩效率,会使传输效率不高。有些企业针对海量小文件采用文件拼接传输方式,但传输的网络环境复杂多变,这种方式也会受到制约。如在网络带宽不理想或者网络中断的情况下,也会因传输不及时导致文件堆积,这仍会造成在传输环节的文件枚举产生延时。


技术实现要素:

[0005]
本发明旨在提供一种海量文件传输方法及系统,以解决上述问题。为此,本发明采用的具体技术方案如下:
[0006]
根据本发明的一方面,提供了一种海量文件传输方法,其包括以下步骤:
[0007]
通过传输中心服务器管理并展示各个节点的机器信息以及管理传输规则,其中,机器信息包括主机名、ip和端口,传输规则包括规则id、发送端传输路径与端口、接收端传输路径与端口以及传输方向;
[0008]
文件管理,创建和监测文件临时缓存目录,发送时先将发送目录中的文件压缩至临时缓存目录,接收时将临时缓存目录中的文件解压至接收目录;
[0009]
传输管理,定时上报心跳包到传输中心服务器,定时向传输中心服务器请求传输规则下发并保存本地,以及定时向传输中心服务器请求所有主机列表下发并保存本地;
[0010]
文件传输,各个节点根据传输规则与对端节点使用udp协议建立传输通道,传输线程数由传输规则数决定,每条传输规则建立一个传输线程,将本端节点的临时缓存目录中的文件发送至对端节点的临时缓存目录,以及从对端节点的临时缓存目录接收文件至本端节点的缓冲目录。
[0011]
进一步地,管理并展示各个节点的机器信息具体包括:接收来自节点的传输管理模块上报心跳包,心跳包包含所述机器信息,如果没有在列表里面的则添加相应机器信息展示,定时下发主机信息列表到各个节点;管理传输规则包括制定传输规则并根据节点请求下发传输规则至该节点。
[0012]
进一步地,创建和监测文件临时缓存目录具体地为:临时缓存目录按内部命名规则命名,指定每个临时缓存目录存储的文件数量的最大值,当文件达到最大数量时,再创建一个临时缓存目录存储;监测缓存目录修改时间,如果最新修改时间超过设定值且没有文件,则视为无用的目录,将其删除。
[0013]
进一步地,文件使用lzma2压缩算法进行压缩和解压。
[0014]
进一步地,文件传输分为主动请求和被动服务两种方式,主动请求是向对端节点请求文件传输,传输方向为发送和下载,被动服务是根据对端节点的请求进行文件传输,传输方向为接收和下发。
[0015]
根据本发明的另一方面,提供了一种海量文件传输系统,其包括:
[0016]
传输中心管理模块,其部署在传输中心服务器上,通过传输中心服务器管理并展示各个节点的机器信息以及管理传输规则,其中,机器信息包括主机名、ip和端口,传输规则包括规则id、发送端传输路径与端口、接收端传输路径与端口以及传输方向;
[0017]
文件管理模块,其部署在各节点上,用于创建和监测文件临时缓存目录,发送时先将发送目录中的文件压缩至临时缓存目录,接收时将临时缓存目录中的文件解压至接收目录;
[0018]
传输管理模块,其部署在各节点上,在节点首次安装时创建唯一主机名并上报传输中心管理模块登记,用于定时上报心跳包到传输中心服务器,定时向传输中心服务器请求传输规则下发并保存本地,以及定时向传输中心服务器请求所有主机列表下发并保存本地;
[0019]
文件传输模块,其部署在各节点上,用于完成文件传输任务,具体地,各个节点根据传输规则与对端节点使用udp协议建立传输通道,传输线程数由传输规则数决定,每条传输规则建立一个传输线程,将本端节点的临时缓存目录中的文件发送至对端节点的临时缓存目录,以及从对端节点的临时缓存目录接收文件至本端节点的缓冲目录。
[0020]
进一步地,管理并展示各个节点的机器信息具体包括:接收来自节点的传输管理模块上报心跳包,心跳包包含所述机器信息,如果没有在列表里面的则添加相应机器信息展示,定时下发主机信息列表到各个节点;管理传输规则包括制定传输规则并根据节点请求下发传输规则至该节点。
[0021]
进一步地,创建和监测文件临时缓存目录具体地为:临时缓存目录按内部命名规则命名,指定每个临时缓存目录存储的文件数量的最大值,当文件达到最大数量时,再创建一个临时缓存目录存储;监测缓存目录修改时间,如果最新修改时间超过设定值且没有文件,则视为无用的目录,将其删除。
[0022]
进一步地,文件使用lzma2压缩算法进行压缩和解压。
[0023]
进一步地,文件传输分为主动请求和被动服务两种方式,主动请求是向对端节点请求文件传输,传输方向为发送和下载,被动服务是根据对端节点的请求进行文件传输,传输方向为接收和下发。
[0024]
本发明采用上述技术方案,具有的有益效果是:本发明通过智能化创建管理临时缓存目录,解决海量文件的压缩受文件枚举制约问题,中心式化管理各节点传输路径与方向,能够适应大数据tb级的文件传输,保证枚举文件的效率;能够适应复杂多变的网络环境,具备断点续传的功能,能用于一对多,多对一,多对多的网络传输需求。
附图说明
[0025]
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
[0026]
图1是本发明的海量文件传输系统的架构示意图;
[0027]
图2是本发明的海量文件传输系统的主要文件传输流程的示意图。
具体实施方式
[0028]
现结合附图和具体实施方式对本发明进一步说明。
[0029]
图1示出了本发明的海量文件传输系统。该海量文件传输系统分为以下几个模块:传输中心管理模块、文件管理模块、传输管理模块和传输执行模块。下面分别对这几个模块的工作原理进行说明。
[0030]
1.传输中心管理模块:此模块是服务程序,部署在固定机器(传输中心服务器),是传输的协调中枢程序。其工作内容包含如下:
[0031]
a.机器信息管理:传输中心管理平台管理并展示各个节点服务器信息,其中,机器信息包含主机名,传输使用的ip,传输节点机器使用的端口等。机器信息管理模块接收来自节点的传输管理模块上报心跳包,该心跳包包含上述机器信息。模块发现如果该机器信息没有在列表里面,则添加相应机器信息展示。定时下发主机信息列表到各个节点。
[0032]
b.传输规则管理:传输规则管理包含节点间的传输规则信息,规则id、发送端传输路径与端口,接收端传输路径与端口,传输方向指明是主动的发送模式还是被动下发模式。节点的传输管理模块向此模块请求规则并保存节点本地。
[0033]
2.文件管理模块:将传输的发送目录的文件(通常是生产者产生的文件)转移到指定临时缓存目录。临时缓存目录(文件夹)按内部命名规则命名,指定每个文件夹约束文件数量最大值。当文件夹中的文件达到最大数量时,再创建一个临时缓存目录存储。文件管理模块监测缓存目录修改时间。如果最新修改时间超过设定值且没有文件,则视为无用的目录,文件管理模块将其删除。文件管理模块使用lzma2压缩算法将临时缓存文件压缩到临时发送目录。临时发送目录以与临时缓存目录同样的机制进行约束,防止因为传输不及时导致文件堆积,导致文件枚举效率低问题。
[0034]
3.传输管理模块
[0035]
传输管理模块在首次安装时创建唯一主机名并上报传输中心管理模块登记。定时上报心跳包到中心管理模块,心跳包包含主机名,ip,传输服务使用的端口等信息。
[0036]
定时向中心管理模块请求传输下发,保证当此节点传输规则有增加、删除、修改等事件时,能及时下发到节点,更新传输规则。传输规则包含规则id、传输方向(send或recv)、
发送目录、接收目录、发送端的主机名、接收端的主机名。
[0037]
定时向中心管理模块请求所有主机列表保存本地。主机列表每个主机信息包含如下内容:节点主机名、节点主机id、节点主机ip、节点传输执行模块的被动服务模块使用的端口等。
[0038]
4.传输执行模块
[0039]
传输执行模块,主要完成文件传输任务。节点传输执行模块,通过传输规则的主机名查询主机列表获取要建立连接的ip与端口信息,使用udp协议建立传输通道。其包含两个子模块,其传输流程如图2所示:
[0040]
a.被动服务模块:负责跟对端节点的客户端传输通讯,接收来自客户端上传的数据,或者下发数据到客户端。使用场景适应各种用户的实际环境。之所以是被动,是因为服务模块不主动发起通讯请求,由客户端模块发起。本模块绑定端口为传输中心端指定,并下发到传输管理模块记录到本地文件,本模块通过读取该文件获得端口绑定。客户端通过传输规则的对端主机名,结合主机信息列表,查询获取对端ip与端口,并由此使用udp协议建立传输通道。被动服务模块传输线程数由传输规则数决定,每条传输规则建立一个传输线程。根据传输规则的传输方向信息,可以下发、接收两种模式运行,参见图2中的服务端下发流程和服务端接收流程。
[0041]
b.主动请求模块:负责跟对端节点的被动服务模块传输通讯。向对端的被动服务模块发送文件数据,或者获取来自对端被动服务模块的数据。模块绑定通过操作系统的api接口来获取本地可用端口。通过传输规则的对端主机名,结合主机信息列表查询获取对端ip与端口,并由此使用udp协议建立传输通道。传输线程数同样由传输规则数决定,每条传输规则建立一个传输线程。根据传输规则的传输方向信息,可以发送、下载两种模式运行,参见图2中的客户端发送流程和客户端下载流程。
[0042]
本发明是通过智能化创建管理临时缓存目录,解决海量文件的压缩受文件枚举制约问题。中心式化管理各节点传输路径与方向,能够适应大数据tb级的文件传输,保证枚举文件的效率;能够适应复杂多变的网络环境,具备断点续传的功能;能用于一对多,多对一,多对多的网络传输需求。
[0043]
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1