一种跨集群文件传输方法技术

技术编号:39742507 阅读:4 留言:0更新日期:2023-12-17 23:42
本发明专利技术涉及计算机技术领域,公开了一种跨集群文件传输方法

【技术实现步骤摘要】
一种跨集群文件传输方法、系统及装置


[0001]本专利技术涉及计算机
,具体涉及一种跨集群文件传输方法

系统及装置


技术介绍

[0002]经典的文件传输协议如文件传输协议
(File Transfer Protocol
,简称
FTP)、
标准通信协议
(Standard Communication Protocol
,简称
SCP)、
安全文件传输协议
(Secure File Transfer Protocol
,简称
SFTP)
在大量数据迁移的场景下效率较低,其原因是它们均采用了全量传输协议,每次传输都要把整个文件全部发送一遍,占用大量的网络带宽和时间,导致传输效率较低

[0003]在实际的数据迁移场景中,经常会遇到数据更新和同步,此时并不需要传输整个文件,只需要传输“增量”部分即可

因此,为提高数据传输效率,出现了远程同步工具
rsync

rsync
在应用层算法方面进行了优化,实现了差异传输和增量传输

因此,
rsync
可以尽可能减少传输的数据量,并且兼容
SFTP
支持的功能,允许
SSH(Struts

Spring

Hibernate)
协议加密传输

但是,
rsync
服务每传一个新的文件需要重新开启一次传输控制协议
(Transmission Control Protocol
,简称
TCP)
连接

一方面
TCP
的建连需要一定的时间代价;另一方面
TCP
拥塞控制算法的慢启动阶段,导致带宽无法被充分利用,从而使得传输性能急剧下降,导致传输效率降低


技术实现思路

[0004]有鉴于此,本专利技术提供了一种跨集群文件传输方法

系统及装置,以解决传输性能下降,传输效率低的问题

[0005]第一方面,本专利技术提供了一种跨集群文件传输方法,方法由第一集群执行,方法包括:
[0006]当接收到数据迁移指示时,调用主进程依次对待传输列表中的待传输文件进行自动切分,得到与待传输文件对应的至少一个子文件,待传输文件存储于第一集群;为每一个子文件分配线程,调用线程从预构建的连接池中获取与子文件对应的加密通道;调用线程创建传输子进程;采用并行方式调用传输子进程,通过加密通道对子文件进行传输,以将待传输文件传输至第二集群中

[0007]本实施例提供的跨集群文件传输方法,首先,通过主进程对待传输文件进行自动切分,并在切分操作之后,为每一个子文件分配线程;然后,通过调用线程从连接池中获取与子文件对应的加密通道,并调用线程创建与各子文件对应的子进程
(
即传输进程
)
;最后,由各子进程按照对应的加密通道对各子文件进行并行传输

本专利技术首先在并行创建子进程的同时,也并行地建立了多个
TCP
连接,相比于
rsync
服务每传一个新的文件需要重新开启一次
TCP
连接而言,直接降低了
TCP
建连的时间开销,且各子文件通过并行方式传输,相当于加大了对带宽的利用效率

其次,在对待传输文件自动切分后再进行增量传输,使得各进程传输的数据量变小,传输效率更快

[0008]在一可选实施方式中,待传输列表的确定方式,包括:
[0009]获取待传输文件夹;按照预设并行粒度遍历待传输文件夹,确定待传输文件;由所有待传输文件组成待传输文件列表

[0010]在一可选实施方式中,基于待传输文件的大小,调用主进程依次对待传输列表中的待传输文件进行自动切分,得到与待传输文件对应的至少一个子文件,包括:
[0011]获取待传输文件的容量;将容量与预设阈值进行比较;当容量大于预设阈值时,调用主进程按照预设阈值对待传输文件进行切分,得到至少两个子文件;当容量小于或等于预设阈值时,调用主进程将待传输文件作为子文件

[0012]在一可选实施方式中,在调用线程从预构建的连接池中获取与子文件对应的加密通道之前,方法还包括:
[0013]调用线程对预构建的连接池加互斥锁

[0014]本实施例通过调用第二线程对连接池加互斥锁,避免了由于同一连接通道被多个进程占用而导致传输出错的情况,为每一个进程提供一个连接通道,间接提高了传输效率

[0015]在一可选实施方式中,在调用线程创建传输子进程之后,方法还包括:
[0016]释放互斥锁;获取子文件的文件类型;基于文件类型,调用线程对子文件进行动态压缩;利用预置私钥对动态压缩后的文件进行加密,得到加密文件

[0017]本实施例通过对压缩文件进行加密,可以保证文件传输过程中的安全性

[0018]在一可选实施方式中,在采用并行方式调用传输子进程,通过加密通道对子文件进行传输的同时,方法还包括:
[0019]调用线程实时获取并存储子文件传输过程中对应的传输记录;当接收到查询指令时,基于查询指令对传输记录进行提取

[0020]第二方面,本专利技术提供了一种跨集群文件传输系统,系统包括:
[0021]管理节点

第一集群和第二集群;管理节点,用于通过预置密钥与第一集群进行交互;第一集群,用于在与第二集群连接成功之后,调用主进程对第一集群中的待传输文件进行自动切分,为切分后得到的与待传输文件对应的至少一个子文件分配线程,调用线程从预构建的连接池中为子文件获取加密通道,调用线程创建传输子进程,采用并行方式调用传输子进程,通过加密通道对子文件进行传输,以将待传输文件传输至第二集群中;第二集群,用于接收子文件,并将所有子文件合并为待传输文件

[0022]在一可选实施方式中,第一集群和第二集群连接成功的验证方式,包括:
[0023]第一集群将连接指令发送至第二集群;第二集群基于连接指令生成状态码,并将状态码发送至第一集群;第一集群用于基于状态码和预设状态码的一致性验证第一集群和第二集群是否连接成功

[0024]在一可选实施方式中,当第一集群与第二集群连接失败时,管理节点还用于生成密钥对,并将私钥下发至第一集群,将公钥下发至第二集群,密钥对包括私钥和公钥;第一集群还用于利用私钥对子文件进行加密;第二集群还用于利用公钥对接收到的子文件进行解密

[0025]第三方面,本专利技术提供了一种跨集群文件传输装置,装置包括:
[0026]切分模块,用于当接本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种跨集群文件传输方法,其特征在于,所述方法包括:当接收到数据迁移指示时,调用主进程依次对待传输列表中的待传输文件进行自动切分,得到与所述待传输文件对应的至少一个子文件,所述待传输文件存储于第一集群;为每一个所述子文件分配线程,调用所述线程从预构建的连接池中获取与所述子文件对应的加密通道;调用所述线程创建传输子进程;采用并行方式调用所述传输子进程,按照对应的所述加密通道对所述子文件进行传输,以将所述待传输文件传输至第二集群中
。2.
根据权利要求1所述的方法,其特征在于,所述待传输列表的确定方式,包括:获取待传输文件夹;按照预设并行粒度遍历所述待传输文件夹,确定所述待传输文件;由所有所述待传输文件组成所述待传输文件列表
。3.
根据权利要求1或2所述的方法,其特征在于,所述调用主进程依次对待传输列表中的待传输文件进行自动切分,得到与所述待传输文件对应的至少一个子文件,包括:获取待传输文件的容量;将所述容量与预设阈值进行比较;当所述容量大于所述预设阈值时,调用所述主进程按照所述预设阈值对所述待传输文件进行切分,得到至少两个子文件;当所述容量小于或等于所述预设阈值时,调用所述主进程将所述待传输文件作为子文件
。4.
根据权利要求1所述的方法,其特征在于,在所述调用所述线程从预构建的连接池中获取与所述子文件对应的加密通道之前,所述方法还包括:调用所述线程对所述预构建的连接池加互斥锁
。5.
根据权利要求4所述的方法,其特征在于,在所述调用所述线程创建传输子进程之后,所述方法还包括:释放所述互斥锁;获取所述子文件的文件类型;基于所述文件类型,调用所述线程对所述子文件进行动态压缩;利用预置私钥对动态压缩后的文件进行加密,得到加密文件
。6.
根据权利要求1所述的方法,其特征在于,在所述采用并行方式调用所述传输子进程,通过所述加密通道对所述子文件进行传输的同时,所述方法还包括:调用所述线程实时获取并存储所述子文件传输过程中对应的传输记录;当接收到查询指令时,基于所述查询指令对所述传输记录进行提取<...

【专利技术属性】
技术研发人员:李俊哲付振新杨宏辉樊春马银萍李若淼
申请(专利权)人:北京大学长沙计算与数字经济研究院
类型:发明
国别省市:

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

1