CN111338780B - 并发文件的传输方法及装置 - Google Patents
并发文件的传输方法及装置 Download PDFInfo
- Publication number
- CN111338780B CN111338780B CN202010130629.3A CN202010130629A CN111338780B CN 111338780 B CN111338780 B CN 111338780B CN 202010130629 A CN202010130629 A CN 202010130629A CN 111338780 B CN111338780 B CN 111338780B
- Authority
- CN
- China
- Prior art keywords
- target
- file
- concurrent
- receiving end
- parallelism
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
Abstract
本申请提供了一种并发文件的传输方法及装置,该方法包括:基于预设的Netty框架,获取目标并发文件的目标接收端当前的并行度数据;根据所述并行度数据、所述目标并发文件中的文件个数和各个文件大小,对所述目标并发文件进行打包处理,对应得到多个数据包;将各个所述数据包分别平均分配给与所述并行度数据对应的各个线程,以应用各个所述线程分别将各个所述数据包发送至所述目标接收端,以使该目标接收端对各个所述数据包进行解压处理得到所述目标并发文件。本申请能够提高文件传输的效率,节省网络带宽和处理器资源的占用。
Description
技术领域
本申请涉及网络并发传输技术领域,尤其涉及一种并发文件的传输方法及装置。
背景技术
在计算机的应用领域,随着计算机技术的迅速发展,对文件传输的信息量、准确性和时效性不断提出新要求。因此如何进一步提高文件传输效率是各大企业所研究的热点问题。
目前主流的文件传输方式是对文件进行串行传输方式。这种传输方式在传输小文件时性能较好,但是在传输超大型文件时,会变得非常低效,因为只有一个线程去抢夺CPU的执行权,其占用的执行时间是非常少的。因此,开始采用多线程去处理传输文件,但多线程传输其相对的占用CPU执行时间的百分比会提高,也就意味着CPU会花费更多时间去进行文件传输。在文件传输方面,主流的将大文件分割成若干字节流传输,之后在接收端接收后根据顺序标记将字节流重组,最终存储在存储设备上,这种方式会因为传输文件过多,使得IO请求次数增加,从而在一定程度上影响了小文件传输和存储的效率。
发明内容
针对现有技术中的问题,本申请提出了一种并发文件的传输方法及装置,能够提高文件传输的效率,节省网络带宽和处理器资源的占用。
为了解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种并发文件的传输方法,包括:
基于预设的Netty框架,获取目标并发文件的目标接收端当前的并行度数据;
根据所述并行度数据、所述目标并发文件中的文件个数和各个文件大小,对所述目标并发文件进行打包处理,对应得到多个数据包;
将各个所述数据包分别平均分配给与所述并行度数据对应的各个线程,以应用各个所述线程分别将各个所述数据包发送至所述目标接收端,以使该目标接收端对各个所述数据包进行解压处理得到所述目标并发文件。
进一步地,在所述基于预设的Netty框架,获取目标并发文件的目标接收端当前的并行度数据之前,还包括:
接收针对所述目标并发文件的传输请求,其中,所述传输请求中包括该目标并发文件对应的目标接收端信息。
进一步地,所述基于预设的Netty框架,获取目标并发文件的目标接收端当前的并行度数据,包括:基于所述预设的Netty框架,获取所述目标接收端当前已开启的线程数;根据所述目标接收端当前已开启的线程数和在预设时间范围内的用户请求的任务处理时间的均值,获取所述目标接收端当前的并行度。
进一步地,在所述基于预设的Netty框架,获取目标并发文件的目标接收端当前的并行度数据之前,还包括:获取所述目标接收端的缓冲区容量;相对应的,各个所述数据包的大小均不超过所述缓冲区容量。
第二方面,本申请提供一种并发文件的传输装置,包括:
获取并行度模块,用于基于预设的Netty框架,获取目标并发文件的目标接收端当前的并行度数据;
打包模块,用于根据所述并行度数据、所述目标并发文件中的文件个数和各个文件大小,对所述目标并发文件进行打包处理,对应得到多个数据包;
发送模块,用于将各个所述数据包分别平均分配给与所述并行度数据对应的各个线程,以应用各个所述线程分别将各个所述数据包发送至所述目标接收端,以使该目标接收端对各个所述数据包进行解压处理得到所述目标并发文件。
进一步地,所述的并发文件的传输装置还包括:接收模块,用于接收针对所述目标并发文件的传输请求,其中,所述传输请求中包括该目标并发文件对应的目标接收端信息。
进一步地,所述获取并行度模块包括:获取线程数单元,用于基于所述预设的Netty框架,获取所述目标接收端当前已开启的线程数;获取并行度单元,用于根据所述目标接收端当前已开启的线程数和在预设时间范围内的用户请求的任务处理时间的均值,获取所述目标接收端当前的并行度。
进一步地,所述的并发文件的传输装置还包括:获取缓冲区容量模块,用于获取所述目标接收端的缓冲区容量;相对应的,各个所述数据包的大小均不超过所述缓冲区容量。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的并发文件的传输方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现所述的并发文件的传输方法。
由上述技术方案可知,本申请提供一种并发文件的传输方法及装置。其中,该方法包括:基于预设的Netty框架,获取目标并发文件的目标接收端当前的并行度数据;根据所述并行度数据、所述目标并发文件中的文件个数和各个文件大小,对所述目标并发文件进行打包处理,对应得到多个数据包;将各个所述数据包分别平均分配给与所述并行度数据对应的各个线程,以应用各个所述线程分别将各个所述数据包发送至所述目标接收端,以使该目标接收端对各个所述数据包进行解压处理得到所述目标并发文件。本申请能够提高文件传输的效率,节省网络带宽和处理器资源的占用;具体地,本申请充分考虑了发送端和接收端的资源情况,根据双方资源情况开启并行多线程,能够提高并发处理能力;在文件传输上,通过打包流式文件传输,能够节省对传输协议交互和IO请求占用的时间,同时能够节省上传下载的耗时。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中并发文件的传输方法的流程示意图;
图2是本申请另一实施例中并发文件的传输方法的流程示意图;
图3是本申请实施例中并发文件的传输方法步骤101和步骤102的流程示意图;
图4是本申请实施例中并发文件的传输装置的结构示意图;
图5是本申请具体应用实例中并发文件的传输装置的结构示意图;
图6是本申请具体应用实例中并发文件的传输方法的流程示意图;
图7为本申请实施例的电子设备9600的系统构成示意框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了提高文件传输效率,考虑到服务器在不同时间段所能处理的文件和接收上限是不同的,本申请从改变现有的文件传输方式出发,结合Netty框架,提出一种并发文件的传输方法及装置,其中,Netty框架是一种高性能并且异步事件驱动的NIO框架,能够提供对TCP、UDP和文件传输的支持。Netty框架具有高并发、封装好和传输速度快的优点,能够降低通信双方对网络带宽和处理器资源的占用,同时还能够实现无缝对接异构平台和低成本切换编程语言。另外,目前网络发展迅速,带宽也大大提升,因此,在文件传输过程中,本申请采用打包流式传输方式传输文件,能够大幅度的减少IO操作,缩短延时并且能够大大降低对系统缓存容量的需求。
基于此,为了提高文件传输的效率,节省网络带宽和处理器资源的占用,本申请实施例提供一种并发文件的传输装置,该装置可以是一服务器或客户端设备,所述客户端设备可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备和智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表和智能手环等。
在实际应用中,进行并发文件的传输的部分可以在如上述内容所述的服务器侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
所述服务器与所述客户端设备之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
具体通过下述各个实施例进行说明。
如图1所示,为了提高文件传输的效率,并节省网络带宽和处理器资源的占用,本实施例提供一种执行主体是并发文件的传输装置的并发文件的传输方法,具体包含有如下内容:
步骤100:基于预设的Netty框架,获取目标并发文件的目标接收端当前的并行度数据。
可以理解的是,所述预设的Netty框架可根据实际情况进行设置,本申请对此不作限制。所述目标接收端可以是服务器或者客户端。所述并发文件的传输装置与目标接收端的通信连接方式为Netty异步通信连接。
步骤200:根据所述并行度数据、所述目标并发文件中的文件个数和各个文件大小,对所述目标并发文件进行打包处理,对应得到多个数据包。
具体地,所述目标并发文件为一个集合,用S集合表示:
S={s1,s2,…,si,…,sN}
其中,S1至SN分别表示目标并发文件中的各个文件大小;N标识各个文件大小。
对目标并发文件进行打包处理,其中,各个文件压缩的大小尽可能接近目标接收端的缓冲区容量Z。打包完成的目标并发文件用集合P表示:
P={p1,p2,p3,…,pN}
其中,p1至PN分别表示集合P中的各个数据包,并且集合P中的各个数据包都小于或等于缓冲区容量Z。
步骤300:将各个所述数据包分别平均分配给与所述并行度数据对应的各个线程,以应用各个所述线程分别将各个所述数据包发送至所述目标接收端,以使该目标接收端对各个所述数据包进行解压处理得到所述目标并发文件。
具体地,对文件集合P求取均值数,公式如下:
可以理解的是,根据目标接收端的并行度能够确定所述并发文件的传输装置可开启的线程数。所述并发文件的传输装置的线程数与目标接收端的并行度成正比。
如图2所示,为了在提高并发文件传输效率的基础上,保证文件传输的可靠性,在本申请一个实施例中,在步骤100之前还包含有:
步骤010:接收针对所述目标并发文件的传输请求,其中,所述传输请求中包括该目标并发文件对应的目标接收端信息。
具体地,所述并发文件的传输装置可以接收用户操作界面发送的针对所述目标并发文件的传输请求,并根据该传输请求建立与目标接收端的Netty连接。所述目标接收端可以是一个或多个,以提高文件传输和存储的可靠性。所述目标接收端信息可以是目标接收端地址,能够确定目标并发文件对应的目标接收端。
参见图3,为了在提高文件传输效率的基础上,通过实时获取目标接收端当前已开启的线程数,提高线程调整的灵活性,进而提高并发处理能力,在本申请一个实施例中,步骤100包含有:
步骤101:基于所述预设的Netty框架,获取所述目标接收端当前已开启的线程数。
可以理解的是,根据所述目标接收端当前已开启的线程数能够确定所述目标接收端当前空闲的线程数。
步骤102:根据所述目标接收端当前已开启的线程数和在预设时间范围内的用户请求的任务处理时间的均值,获取所述目标接收端当前的并行度。
具体地,所述预设时间范围可根据实际情况进行设置,本申请对此不作限制。所述用户请求的任务处理时间可以是完成一次文件传输过程的时间。
为了保证并发文件的传输装置和目标接收端的宽带速率不同时,并发文件传输的可靠性,在目标接收端设立缓冲区以存放数据,在本申请一个实施例中,在步骤100之前还包含有:
步骤002:获取所述目标接收端的缓冲区容量;相对应的,各个所述数据包的大小均不超过所述缓冲区容量。
具体地,可以依据实际带宽、并发文件的传输装置和目标接收端的数量来设定缓冲区容量。
从软件层面来说,为了提高文件传输的效率,节省网络带宽和处理器资源的占用,本申请提供一种并发文件的传输方法中全部或部分内容的并发文件的传输装置的实施例,参见图4,所述并发文件的传输装置具体包含有如下内容:
获取并行度模块10,用于基于预设的Netty框架,获取目标并发文件的目标接收端当前的并行度数据。
打包模块20,用于根据所述并行度数据、所述目标并发文件中的文件个数和各个文件大小,对所述目标并发文件进行打包处理,对应得到多个数据包。
发送模块30,用于将各个所述数据包分别平均分配给与所述并行度数据对应的各个线程,以应用各个所述线程分别将各个所述数据包发送至所述目标接收端,以使该目标接收端对各个所述数据包进行解压处理得到所述目标并发文件。
在本申请一个实施例中,所述的并发文件的传输装置还包含有:
接收模块40,用于接收针对所述目标并发文件的传输请求,其中,所述传输请求中包括该目标并发文件对应的目标接收端信息。
在本申请一个实施例中,所述获取并行度模块10包含有:
获取线程数单元11,用于基于所述预设的Netty框架,获取所述目标接收端当前已开启的线程数。
获取并行度单元12,用于根据所述目标接收端当前已开启的线程数和在预设时间范围内的用户请求的任务处理时间的均值,获取所述目标接收端当前的并行度。
在本申请一个实施例中,所述的并发文件的传输装置还包含有:
获取缓冲区容量模块,用于获取所述目标接收端的缓冲区容量;相对应的,各个所述数据包的大小均不超过所述缓冲区容量。
本说明书提供的并发文件的传输装置的实施例具体可以用于执行上述并发文件的传输方法的实施例的处理流程,其功能在此不再赘述,可以参照上述并发文件的传输方法实施例的详细描述。
为了进一步说明本方案,本申请还提供一种并发文件的传输装置的具体应用实例,在本具体应用实例中,参见图5,该并发文件的传输装置包含有客户端发起请求模块1、服务端计算当前并行度模块2、客户端分解传输文件模块3、客户端上传下载模块4、服务端文件接收与传输模块5、存储模块6和网络7。具体描述如下:
客户端发起请求模块1,用于接收用户的操作,发出请求,与服务端建立Netty连接。
服务端计算当前并行度模块2,用于根据当前已开启的线程数,以及这段时间内用户请求的任务处理时间的均值来判定服务器的并行度。
客户端分解传输文件模块3,用于根据并行度以及文件大小进行打包并均分成适合于服务器端接收大小的文件包。具体的实现流程如下所述:
假设批量上传的文件为一个集合,用S集合表示:
S={s1,s2,…,si,…,sN}
其中,si表示的是测定数据接收端服务器缓冲区的上传文件大小;N是批量上传的文件数。
对文件进行打包处理,打包压缩的大小尽可能接近设定的服务端缓冲区大小Z。打包完成的文件用集合P表示:
P={p1,p2,p3,…,pN}
其中集合P中的文件块都小于或等于服务器缓冲区大小Z。对文件集合P求取均值数,公式如下:
客户端上传下载模块4,用于开启多线程,建立Netty连接,将文件包进行流式传输。
服务端文件接收与传输模块5,用于建立和断开连接,以及解压组装文件块。
存储模块6,用于将组装好的文件直接存入存储平台。
为了进一步说明本方案,结合上述并发文件的传输装置,本申请还提供一种并发文件的传输方法的具体应用实例,在本具体应用实例中的客户端为所述并发文件的传输装置,服务端为所述目标接收端,参见图6,具体包含有如下内容:
步骤S201:发起请求。
具体地,客户端使用Netty异步高性能通信框架,实现客户端和服务端的内部通信,咨询服务端空闲资源情况。服务器根据当前已开启的线程数,以及这段时间内用户请求的任务处理时间的均值来判定服务器能提供的空闲线程数。
步骤S202:建立连接,根据服务端线程数量自适应返回并行度。
具体地,服务端将自适应的线程数封装为报文传输给客户端。
步骤S203:发起请求。
具体地,客户端解析报文,根据并行度开启多个线程,并将文件均分打包到各个线程。
步骤S204:多线程上传/下载。
具体地,使用Netty建立连接,将步骤S203打包完成的文件包进行报文传输。
步骤S205:文件接收与传输。
具体地,服务端返回报文,确认连接是否建立成功。
步骤S206:多线程上传/下载。
具体地,文件包使用流式进行传输。
步骤S207:文件接收与传输。
具体地,服务端对最后的文件传输报文进行确认。
步骤S208:多线程上传/下载。
具体地,客户端解析确认接收成功报文,发送断开报文,并和服务端断开连接。
步骤S209:文件接收与传输。
具体地,服务端将接收到的报文解析并将传输的文件在内存中解压拼接,直接存储到存储平台上。
由上述描述可知,本申请应用实例中提供的并发文件的传输方法及装置,能够基于并发传输模式实现多文件上传和下载;通过建立Netty异步高性能通信框架,客户端可以随时监控服务端的空闲线程数;客户端根据服务端的空闲线程数与自身资源情况自适应的开启相应线程数来处理文件传输,提高并发处理能力。客户端根据文件大小不同均分并打包到各个线程上,再使用高性能的Netty框架传输数据。通过打包流式文件传输策略,对文件传输之前进行打包处理,然后再进行传输,在接收端收到文件时首先进行解包再进行存储,从而减少文件传输过程中大量的IO操作,提升文件传输效率。
由上述描述可知,本申请提供的并发文件的传输方法及装置提高文件传输的效率,节省网络带宽和处理器资源的占用;具体地,能够提高并发处理能力,节省对传输协议交互和IO请求占用的时间。
从硬件层面来说,为了提高文件传输的效率,节省网络带宽和处理器资源的占用,本申请提供一种用于实现所述并发文件的传输方法中的全部或部分内容的电子设备的实施例所述电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现所述并发文件的传输装置以及用户终端等相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例用于实现所述并发文件的传输方法的实施例及用于实现所述并发文件的传输装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图7为本申请实施例的电子设备9600的系统构成的示意框图。如图7所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图7是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
在本申请一个或多个实施例中,并发文件的传输功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
步骤100:基于预设的Netty框架,获取目标并发文件的目标接收端当前的并行度数据。
步骤200:根据所述并行度数据、所述目标并发文件中的文件个数和各个文件大小,对所述目标并发文件进行打包处理,对应得到多个数据包。
步骤300:将各个所述数据包分别平均分配给与所述并行度数据对应的各个线程,以应用各个所述线程分别将各个所述数据包发送至所述目标接收端,以使该目标接收端对各个所述数据包进行解压处理得到所述目标并发文件。
从上述描述可知,本申请的实施例提供的电子设备,提高文件传输的效率,并节省网络带宽和处理器资源的占用。
在另一个实施方式中,并发文件的传输装置可以与中央处理器9100分开配置,例如可以将并发文件的传输装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现并发文件的传输功能。
如图7所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图7中所示的所有部件;此外,电子设备9600还可以包括图7中没有示出的部件,可以参考现有技术。
如图7所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
上述描述可知,本申请的实施例提供的电子设备,能够提高文件传输的效率,并节省网络带宽和处理器资源的占用。
本申请的实施例还提供能够实现上述实施例中的并发文件的传输方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的并发文件的传输方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤100:基于预设的Netty框架,获取目标并发文件的目标接收端当前的并行度数据。
步骤200:根据所述并行度数据、所述目标并发文件中的文件个数和各个文件大小,对所述目标并发文件进行打包处理,对应得到多个数据包。
步骤300:将各个所述数据包分别平均分配给与所述并行度数据对应的各个线程,以应用各个所述线程分别将各个所述数据包发送至所述目标接收端,以使该目标接收端对各个所述数据包进行解压处理得到所述目标并发文件。
从上述描述可知,本申请实施例提供的计算机可读存储介质,能够提高文件传输的效率,并节省网络带宽和处理器资源的占用。
本申请中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本申请中应用了具体实施例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种并发文件的传输方法,其特征在于,包括:
基于预设的Netty框架,获取目标并发文件的目标接收端当前的并行度数据;
根据所述并行度数据、所述目标并发文件中的文件个数和各个文件大小,对所述目标并发文件进行打包处理,对应得到多个数据包;
将各个所述数据包分别平均分配给与所述并行度数据对应的各个线程,以应用各个所述线程分别将各个所述数据包发送至所述目标接收端,以使该目标接收端对各个所述数据包进行解压处理得到所述目标并发文件。
2.根据权利要求1所述的并发文件的传输方法,其特征在于,在所述基于预设的Netty框架,获取目标并发文件的目标接收端当前的并行度数据之前,还包括:
接收针对所述目标并发文件的传输请求,其中,所述传输请求中包括该目标并发文件对应的目标接收端信息。
3.根据权利要求2所述的并发文件的传输方法,其特征在于,所述基于预设的Netty框架,获取目标并发文件的目标接收端当前的并行度数据,包括:
基于所述预设的Netty框架,获取所述目标接收端当前已开启的线程数;
根据所述目标接收端当前已开启的线程数和在预设时间范围内的用户请求的任务处理时间的均值,获取所述目标接收端当前的并行度。
4.根据权利要求1所述的并发文件的传输方法,其特征在于,在所述基于预设的Netty框架,获取目标并发文件的目标接收端当前的并行度数据之前,还包括:
获取所述目标接收端的缓冲区容量;
相对应的,各个所述数据包的大小均不超过所述缓冲区容量。
5.一种并发文件的传输装置,其特征在于,包括:
获取并行度模块,用于基于预设的Netty框架,获取目标并发文件的目标接收端当前的并行度数据;
打包模块,用于根据所述并行度数据、所述目标并发文件中的文件个数和各个文件大小,对所述目标并发文件进行打包处理,对应得到多个数据包;
发送模块,用于将各个所述数据包分别平均分配给与所述并行度数据对应的各个线程,以应用各个所述线程分别将各个所述数据包发送至所述目标接收端,以使该目标接收端对各个所述数据包进行解压处理得到所述目标并发文件。
6.根据权利要求5所述的并发文件的传输装置,其特征在于,还包括:
接收模块,用于接收针对所述目标并发文件的传输请求,其中,所述传输请求中包括该目标并发文件对应的目标接收端信息。
7.根据权利要求6所述的并发文件的传输装置,其特征在于,所述获取并行度模块包括:
获取线程数单元,用于基于所述预设的Netty框架,获取所述目标接收端当前已开启的线程数;
获取并行度单元,用于根据所述目标接收端当前已开启的线程数和在预设时间范围内的用户请求的任务处理时间的均值,获取所述目标接收端当前的并行度。
8.根据权利要求5所述的并发文件的传输装置,其特征在于,还包括:
获取缓冲区容量模块,用于获取所述目标接收端的缓冲区容量;
相对应的,各个所述数据包的大小均不超过所述缓冲区容量。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至4任一项所述的并发文件的传输方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被执行时实现权利要求1至4任一项所述的并发文件的传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010130629.3A CN111338780B (zh) | 2020-02-28 | 2020-02-28 | 并发文件的传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010130629.3A CN111338780B (zh) | 2020-02-28 | 2020-02-28 | 并发文件的传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111338780A CN111338780A (zh) | 2020-06-26 |
CN111338780B true CN111338780B (zh) | 2023-03-31 |
Family
ID=71181916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010130629.3A Active CN111338780B (zh) | 2020-02-28 | 2020-02-28 | 并发文件的传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111338780B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111953784B (zh) * | 2020-08-14 | 2023-01-06 | 中国工商银行股份有限公司 | 基于异步通信框架的文件传输方法、装置及系统 |
CN112187663B (zh) * | 2020-09-17 | 2022-11-25 | 福建实达集团股份有限公司 | 基于通信负载的数据传输方法、装置及系统 |
CN112738270B (zh) | 2021-01-07 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 一种文件传输方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108234614A (zh) * | 2017-12-25 | 2018-06-29 | 华南理工大学 | 一种基于自定义协议及Netty框架的交互方法 |
CN108776710A (zh) * | 2018-06-28 | 2018-11-09 | 农信银资金清算中心有限责任公司 | 一种数据库数据的并发装载方法及装置 |
CN108933805A (zh) * | 2017-05-26 | 2018-12-04 | 武汉斗鱼网络科技有限公司 | 一种文件传输方法及系统 |
CN110321329A (zh) * | 2019-06-18 | 2019-10-11 | 中盈优创资讯科技有限公司 | 基于大数据的数据处理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5535115B2 (ja) * | 2011-03-29 | 2014-07-02 | 株式会社日立システムズ | マルチスレッド型ファイル入出力システム、及びマルチスレッド型ファイル入出力プログラム |
-
2020
- 2020-02-28 CN CN202010130629.3A patent/CN111338780B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108933805A (zh) * | 2017-05-26 | 2018-12-04 | 武汉斗鱼网络科技有限公司 | 一种文件传输方法及系统 |
CN108234614A (zh) * | 2017-12-25 | 2018-06-29 | 华南理工大学 | 一种基于自定义协议及Netty框架的交互方法 |
CN108776710A (zh) * | 2018-06-28 | 2018-11-09 | 农信银资金清算中心有限责任公司 | 一种数据库数据的并发装载方法及装置 |
CN110321329A (zh) * | 2019-06-18 | 2019-10-11 | 中盈优创资讯科技有限公司 | 基于大数据的数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111338780A (zh) | 2020-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111338780B (zh) | 并发文件的传输方法及装置 | |
US9755977B2 (en) | Transmission of delay tolerant data | |
CN102761564B (zh) | 图形共享方法、系统与终端 | |
CN111510493B (zh) | 分布式数据传输方法及装置 | |
KR20210137702A (ko) | 전자 장치 및 전자 장치에서 수신된 데이터 패킷을 처리하는 방법 | |
CN104852971A (zh) | 一种插件式协议装置及基于插件式协议的数据通信方法 | |
CN112769945B (zh) | 分布式服务调用方法及装置 | |
CN113055483A (zh) | 消息中间件数据处理方法、装置及系统 | |
JP5382812B2 (ja) | データ圧縮転送システム、伝送装置及びそれらに用いるデータ圧縮転送方法 | |
CN112689012A (zh) | 跨网络的代理通讯方法及装置 | |
WO2023123991A1 (zh) | 数据传输方法、装置、电子设备和存储介质 | |
CN111741453A (zh) | 蓝牙数据封装通信方法及装置 | |
KR20210054162A (ko) | 호 연결 시간을 단축하는 방법 및 이를 위한 전자 장치 | |
CN115623057A (zh) | 基于rdma的建连方法、装置、设备及存储介质 | |
CN113014544B (zh) | 基于webRtc无中心媒体链路建立方法及装置 | |
CN111767118A (zh) | 基于分布式文件系统的容器存储空间处理方法及装置 | |
CN111782366A (zh) | 一种分布式任务调度方法及装置 | |
CN113301104B (zh) | 数据处理系统及方法 | |
CN115834649A (zh) | 远程过程调用方法、装置及系统 | |
WO2024087064A1 (zh) | 通信方法、电子设备及存储介质 | |
CN114090484B (zh) | 远程直接数据存取方法及装置 | |
CN106155610A (zh) | 一种屏幕操作方法及装置 | |
CN111240858B (zh) | 事件调度方法及组件 | |
CN111240858A (zh) | 事件调度方法及组件 | |
CN114727128B (zh) | 播放终端的数据传输方法、装置、播放终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |