数据发送方法、系统技术方案

技术编号:28948271 阅读:11 留言:0更新日期:2021-06-18 22:05
本申请涉及一种数据发送方法、系统。方法包括:发送端获取待发送的文件数据,并对文件数据进行分块,得到至少一个文件数据块;发送端针对每个文件数据块,创建对应的数据块压缩任务,并将数据块压缩任务添加至任务处理队列;发送端通过多个线程并发执行任务处理队列中的数据块压缩任务,得到对应的压缩数据块,并将压缩数据块发送至接收端列表中与发送端距离最近的目标接收端;接收端列表中包括多个按照与发送端间的距离排列的接收端;目标接收端将压缩数据块转发至接收端列表中与发送端距离次近的接收端,直至各接收端均收到压缩数据块。采用本方法能够缩短文件从发送端传递至各个接收端所需的时间。

【技术实现步骤摘要】
数据发送方法、系统
本申请涉及计算机
,特别是涉及一种数据发送方法、系统。
技术介绍
随着计算机技术的发展,对于分布式系统,常常需要将文件从系统中的发送端发送至多个系统中的接收端,为了降低发送的数据量,发送端通常将文件数据压缩后再进行发送。传统方法中,发送端对较大的文件数据进行压缩时,压缩时间较长,并且发送端在压缩完成后,依次将压缩文件发送至每个接收端,发送至接收端的速度受限于发送端的网络带宽,发送文件时,占用了较长时间。
技术实现思路
基于此,有必要针对上述技术问题,提供一种能够缩短发送时间的数据发送方法、系统。一种数据发送方法,所述方法包括:发送端获取待发送的文件数据,并对所述文件数据进行分块,得到至少一个文件数据块;所述发送端针对每个所述文件数据块,创建对应的数据块压缩任务,并将所述数据块压缩任务添加至任务处理队列;所述发送端通过多个线程并发执行所述任务处理队列中的数据块压缩任务,得到对应的压缩数据块,并将所述压缩数据块发送至接收端列表中与所述发送端距离最近的目标接收端;所述接收端列表中包括多个按照与所述发送端间的距离排列的接收端;所述目标接收端将所述压缩数据块转发至所述接收端列表中与所述发送端距离次近的接收端,直至各接收端均收到所述压缩数据块。在一个实施例中,所述方法还包括:当所述目标接收端接收到所述压缩数据块时,通过解压缩线程池中的线程对各所述压缩数据块进行解压缩,并将解压缩后的数据块存入对应的文件。在一个实施例中,所述发送端与所述接收端列表中各接收端上均部署了对应的代理程序;所述得到对应的压缩数据块之后,所述方法还包括:所述发送端将所述压缩数据块存入环形队列;所述将所述压缩数据块发送至接收端列表中与所述发送端距离最近的目标接收端包括:所述发送端通过线程从所述环形队列中依次提取各所述压缩数据块,并通过部署在所述发送端上的代理程序将所提取的压缩数据块发送至部署在所述目标接收端上的代理程序;所述目标接收端将所述压缩数据块转发至所述接收端列表中与所述发送端距离次近的接收端包括:通过部署在所述目标接收端上的代理程序将所述压缩数据块转发至与所述发送端距离次近的接收端上部署的代理程序。在一个实施例中,所述将所述压缩数据块发送至接收端列表中与所述发送端距离最近的目标接收端包括:所述发送端将所述压缩数据块存入发送端内核缓冲区,并从发送端内核缓冲区复制到发送端网络层缓冲区;所述发送端将所述发送端网络层缓冲区中的压缩数据块发送至所述目标接收端,并存储于接收端内核缓冲区;所述目标接收端将所述压缩数据块转发至所述接收端列表中与所述发送端距离次近的接收端包括:所述目标接收端将所述压缩数据块从所述接收端内核缓冲区复制到接收端网络层缓冲区,将所述接收端网络层缓冲区中的压缩数据块发送至所述接收端列表中与所述发送端距离次近的接收端。在一个实施例中,所述方法还包括:当发送端接收到数据分发请求时,从所述数据分发请求中提取排序前接收端列表;分别向所述排序前接收端列表中各接收端发送网络探测命令;当接收到各接收端响应于所述网络探测命令返回的响应命令时,分别获取各所述接收端返回所述响应命令的响应时间;根据所述响应时间对各所述接收端进行排序,得到所述接收端列表。在一个实施例中,所述方法还包括:当所述接收端列表中的末尾接收端接收到全部压缩数据块时,向前一接收端反馈接收成功信息;对于所述接收端列表中除所述末尾接收端及所述目标接收端之外的接收端,当接收到所述接收端列表中的所有后继接收端反馈的接收成功信息时,将所有后继接收端反馈的接收成功信息与自身产生的接收成功信息一起发送至前一接收端;当所述目标接收端接收到所有后继接收端反馈的接收成功信息时,将所有后继接收端反馈的接收成功信息与自身产生的接收成功信息一起发送至所述发送端。一种数据发送系统,所述系统包括:发送端,用于获取待发送的文件数据,并对所述文件数据进行分块,得到至少一个文件数据块;所述发送端,还用于针对每个所述文件数据块,创建对应的数据块压缩任务,并将所述数据块压缩任务添加至任务处理队列;所述发送端还用于,通过多个线程并发执行所述任务处理队列中的数据块压缩任务,得到对应的压缩数据块,并将所述压缩数据块发送至接收端列表中与所述发送端距离最近的目标接收端;所述接收端列表中包括多个按照与所述发送端间的距离排列的接收端;所述目标接收端,用于将所述压缩数据块转发至所述接收端列表中与所述发送端距离次近的接收端,直至各接收端均收到所述压缩数据块。在一个实施例中,所述系统还包括:所述目标接收端,当接收到所述压缩数据块时,还用于通过解压缩线程池中的线程对各所述压缩数据块进行解压缩,并将解压缩后的数据块存入对应的文件。在一个实施例中,所述发送端与所述接收端列表中各接收端上均部署了对应的代理程序;所述系统还包括:所述发送端,还用于将所述压缩数据块存入环形队列;所述发送端,还用于通过线程从所述环形队列中依次提取各所述压缩数据块,并通过部署在所述发送端上的代理程序将所提取的压缩数据块发送至部署在所述目标接收端上的代理程序;所述目标接收端,还用于通过部署在所述目标接收端上的代理程序将所述压缩数据块转发至与所述发送端距离次近的接收端上部署的代理程序。在一个实施例中,所述系统还包括:所述发送端,还用于将所述压缩数据块存入发送端内核缓冲区,并从发送端内核缓冲区复制到发送端网络层缓冲区;所述发送端,还用于将所述发送端网络层缓冲区中的压缩数据块发送至所述目标接收端,并存储于接收端内核缓冲区;所述目标接收端,还用于将所述压缩数据块从所述接收端内核缓冲区复制到接收端网络层缓冲区,将所述接收端网络层缓冲区中的压缩数据块发送至所述接收端列表中与所述发送端距离次近的接收端。在一个实施例中,所述发送端还用于:当接收到数据分发请求时,从所述数据分发请求中提取排序前接收端列表;分别向所述排序前接收端列表中各接收端发送网络探测命令;当接收到各接收端响应于所述网络探测命令返回的响应命令时,分别获取各所述接收端返回所述响应命令的响应时间;根据所述响应时间对各所述接收端进行排序,得到所述接收端列表。在一个实施例中,所述系统还包括:与所述发送端距离最远的末尾接收端以及除所述末尾接收端和所述目标接收端之外的中间接收端;所述末尾接收端,当接收到全部压缩数据块时,用于向前一接收端反馈接收成功信息;所述中间接收端,当接收到所述接收端列表中的所有后继接收端反馈的接收成功信息时,用于将所有后继接收端反馈的接收成功信息与自身产生的接收成功信息一起发送至前一接收端;所述目标接收端,当接收到所有后继接收端反馈的接收成功信息时,还用于将所有后继接收端反馈的接收成功信息与自身产生的接收成功信息一起本文档来自技高网...

【技术保护点】
1.一种数据发送方法,其特征在于,所述方法包括:/n发送端获取待发送的文件数据,并对所述文件数据进行分块,得到至少一个文件数据块;/n所述发送端针对每个所述文件数据块,创建对应的数据块压缩任务,并将所述数据块压缩任务添加至任务处理队列;/n所述发送端通过多个线程并发执行所述任务处理队列中的数据块压缩任务,得到对应的压缩数据块,并将所述压缩数据块发送至接收端列表中与所述发送端距离最近的目标接收端;所述接收端列表中包括多个按照与所述发送端间的距离排列的接收端;/n所述目标接收端将所述压缩数据块转发至所述接收端列表中与所述发送端距离次近的接收端,直至各接收端均收到所述压缩数据块。/n

【技术特征摘要】
1.一种数据发送方法,其特征在于,所述方法包括:
发送端获取待发送的文件数据,并对所述文件数据进行分块,得到至少一个文件数据块;
所述发送端针对每个所述文件数据块,创建对应的数据块压缩任务,并将所述数据块压缩任务添加至任务处理队列;
所述发送端通过多个线程并发执行所述任务处理队列中的数据块压缩任务,得到对应的压缩数据块,并将所述压缩数据块发送至接收端列表中与所述发送端距离最近的目标接收端;所述接收端列表中包括多个按照与所述发送端间的距离排列的接收端;
所述目标接收端将所述压缩数据块转发至所述接收端列表中与所述发送端距离次近的接收端,直至各接收端均收到所述压缩数据块。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述目标接收端接收到所述压缩数据块时,通过解压缩线程池中的线程对各所述压缩数据块进行解压缩,并将解压缩后的数据块存入对应的文件。


3.根据权利要求1所述的方法,其特征在于,所述发送端与所述接收端列表中各接收端上均部署了对应的代理程序;所述得到对应的压缩数据块之后,所述方法还包括:
所述发送端将所述压缩数据块存入环形队列;
所述将所述压缩数据块发送至接收端列表中与所述发送端距离最近的目标接收端包括:
所述发送端通过线程从所述环形队列中依次提取各所述压缩数据块,并通过部署在所述发送端上的代理程序将所提取的压缩数据块发送至部署在所述目标接收端上的代理程序;
所述目标接收端将所述压缩数据块转发至所述接收端列表中与所述发送端距离次近的接收端包括:
通过部署在所述目标接收端上的代理程序将所述压缩数据块转发至与所述发送端距离次近的接收端上部署的代理程序。


4.根据权利要求1所述的方法,其特征在于,所述将所述压缩数据块发送至接收端列表中与所述发送端距离最近的目标接收端包括:
所述发送端将所述压缩数据块存入发送端内核缓冲区,并从发送端内核缓冲区复制到发送端网络层缓冲区;
所述发送端将所述发送端网络层缓冲区中的压缩数据块发送至所述目标接收端,并存储于接收端内核缓冲区;
所述目标接收端将所述压缩数据块转发至所述接收端列表中与所述发送端距离次近的接收端包括:
所述目标接收端将所述压缩数据块从所述接收端内核缓冲区复制到接收端网络层缓冲区,将所述接收端网络层缓冲区中的压缩数据块发送至所述接收端列表中与所述发送端距离次近的接收端。


5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当发送端接收到数据分发请求时,从所述数据分发请求中提取排序前接收端列表;
分别向所述排序前接收端列表中各接收端发送网络探测命令;
当接收到各接收端响应于所述网络探测命令返回的响应命令时,分别获取各所述接收...

【专利技术属性】
技术研发人员:禹春雷魏猛曹春雨代江波张文婷伍岩松张健苗咏邹胜
申请(专利权)人:深圳华锐金融技术股份有限公司上海华锐软件有限公司
类型:发明
国别省市:广东;44

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

1