CN112199442B - 分布式批量下载文件方法、装置、计算机设备及存储介质 - Google Patents
分布式批量下载文件方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112199442B CN112199442B CN202011056330.4A CN202011056330A CN112199442B CN 112199442 B CN112199442 B CN 112199442B CN 202011056330 A CN202011056330 A CN 202011056330A CN 112199442 B CN112199442 B CN 112199442B
- Authority
- CN
- China
- Prior art keywords
- file
- data source
- channel
- files
- transfer server
- 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
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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Abstract
本申请实施例属于管理技术领域,应用于智慧政务领域中,涉及一种分布式批量下载文件方法,包括接收文件代码,根据接收的不同的文件代码确定不同节点的数据源文件;基于预设的文件通道将不同节点的所述数据源文件拷贝至预设的中转服务器中;识别所述文件代码的所属批次,控制所述中转服务器汇总属于同一批次的多个节点的数据源文件,生成汇总文件,并将所述汇总文件发送至客户端。本申请还提供一种分布式批量下载文件装置、计算机设备及存储介质。其中,汇总文件可存储于区块链中。本申请提升批量文件的下载速度。
Description
技术领域
本申请涉及管理技术领域,尤其涉及分布式批量下载文件方法、装置、计算机设备及存储介质。
背景技术
随着计算机技术的不断发展,各行各业都已采用计算机技术进行线上办公和数据处理。其中,对于总公司的计算机用户来说,需要经常下载查看处于各个不同地区的分公司的数据报表等文件。而且,对于各个分公司的同一类的数据报表,总公司的用户常常需要同时下载和查看,这就对文件的下载速度提出了更高的要求。
目前,当下载的文件较大时,会出现下载速度慢,下载耗时长,无法及时打开文件,导致用户体验差的问题。
发明内容
本申请实施例的目的在于提出一种分布式批量下载文件方法、装置、计算机设备及存储介质,提升批量文件下载速度。
为了解决上述技术问题,本申请实施例提供一种分布式批量下载文件方法,采用了如下所述的技术方案:
一种分布式批量下载文件方法,包括下述步骤:
接收文件代码,根据接收的不同的文件代码确定不同节点的数据源文件;
基于预设的文件通道将不同节点的所述数据源文件拷贝至预设的中转服务器中;以及
识别所述文件代码的所属批次,控制所述中转服务器汇总属于同一批次的多个节点的数据源文件,生成汇总文件,并发送所述汇总文件至客户端。
进一步的,基于预设的文件通道将不同节点的所述数据源文件拷贝至预设的中转服务器的步骤包括:
在当前节点,基于所述文件代码确定当前节点对应的数据源文件的数量;
当确定的数据源文件的数量大于预设阈值时,基于数据源文件创建当前节点的文件通道池,其中,所述文件通道池包括所述文件通道;
将当前节点的所述数据源文件通过所述文件通道池拷贝至中转服务器。
进一步的,所述基于数据源文件创建当前节点的文件通道池的步骤包括:
获取所述数据源文件的数量;
根据所述数据源文件的数量确定文件通道数量,其中,所述文件通道数量等于或大于所述数据源文件的数量;
根据所述文件通道数量创建对应数量的文件通道,生成文件通道池。
进一步的,所述将当前节点的所述数据源文件通过所述文件通道池拷贝至中转服务器的步骤包括:
获取当前节点的每个所述数据源文件的散列码的值;
基于所述散列码的值对文件通道的数量进行取余,获得取余结果;
基于所述取余结果确定所述数据源文件对应的文件通道;
将所述数据源文件通过对应的文件通道拷贝至中转服务器。
进一步的,所述文件通道包括文件输入通道和文件输出通道,所述基于预设的文件通道将不同节点的所述源数据文件拷贝至预设的中转服务器的步骤包括:
通过预设的transferTo方式连通文件输入通道和文件输出通道,形成连通关系;
将所述数据源文件通过所述文件输入通道写入所述文件输入通道对应的第一字节缓冲区;
基于所述连通关系,将所述第一字节缓冲区中的数据源文件,传输至所述文件输出通道对应的第二字节缓冲区中;
基于所述文件输出通道,将所述第二字节缓冲区中的数据源文件输出至所述中转服务器。
进一步的,所述发送所述汇总文件至客户端的步骤包括:
控制所述中转服务器压缩所述汇总文件,生成压缩文件,并将所述压缩文件发送至客户端。
进一步的,所述控制所述中转服务器压缩所述汇总文件,生成压缩文件,并将所述压缩文件发送至客户端的步骤包括:
控制所述中转服务器压缩所述汇总文件,生成压缩文件和对应的状态标识,将所述状态标识发送至客户端,以表示文件为待下载状态;
当识别到所述中转服务器接收到所述客户端发送的文件下载请求时,控制所述中转服务器根据压缩文件名称确定对应的压缩文件,并将对应的所述压缩文件发送至客户端,其中,所述文件下载请求携带有所述压缩文件名称。
为了解决上述技术问题,本申请实施例还提供一种分布式批量下载文件装置,采用了如下所述的技术方案:
一种分布式批量下载文件装置,包括:
确定模块,用于接收文件代码,根据接收的不同的文件代码确定不同节点的数据源文件;
拷贝模块,用于基于预设的文件通道将不同节点的所述数据源文件拷贝至预设的中转服务器中;以及
汇总模块,用于识别所述文件代码的所属批次,控制所述中转服务器汇总属于同一批次的多个节点的数据源文件,生成汇总文件,并发送所述汇总文件至客户端。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现上述的分布式批量下载文件方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现上述的分布式批量下载文件方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果:
本申请通过建立文件通道来拷贝数据源文件,有效提升文件下载效率。部署中转服务器,降低本部计算机对数据的处理负担。同时将不同节点的数据源文件通过文件通道拷贝至中转服务器,根据批次对来自不同节点的数据源文件进行分类汇总,有效提升了来自不同节点但需要对数据源文件同时高速下载的要求,满足了本部对数据源文件的下载速度的需求,满足业务对多个数据库的数据采集需求,提升用户体验。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的分布式批量下载文件方法的一个实施例的流程图;
图3是根据本申请的分布式批量下载文件装置的一个实施例的结构示意图;
图4是根据本申请的计算机设备的一个实施例的结构示意图。
附图标记:200、计算机设备;201、存储器;202、处理器;203、网络接口;300、分布式批量下载文件装置;301、确定模块;302、拷贝模块;303、汇总模块。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的分布式批量下载文件方法一般由服务器/终端设备执行,相应地,分布式批量下载文件装置一般设置于服务器/终端设备中。
此外,还需要说明的是,本申请中上下文所提及的服务器包括所述中转服务器,本申请的服务器能够控制所述中转服务器执行对应的操作步骤。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的分布式批量下载文件方法的一个实施例的流程图。所述的分布式批量下载文件方法,包括以下步骤:
S1:接收文件代码,根据接收的不同的文件代码确定不同节点的数据源文件。
在本实施例中,不同的节点具有不同的数据源文件,不同节点对应不同的地区,如上海节点、北京节点、深圳节点以及广州节点等。根据接收到的文件代码确定需要下载的数据源文件。数据源文件可以指资产负债表、利润表、现金流量表和考勤报表等。其中,文件代码由用户发送,用户每次根据需要在客户端发送或者选择一批文件代码,文件代码与数据源文件具有一一对应关系,计算机能够根据文件代码确定用户需要的对应的数据源文件。
在本实施例中,分布式批量下载文件方法运行于其上的电子设备(例如图1所示的服务器/终端设备)可以通过有线连接方式或者无线连接方式接收文件代码。需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
S2:基于预设的文件通道将不同节点的所述数据源文件拷贝至预设的中转服务器中。
在本实施例中,保存不同节点的数据文件到中转服务器,中转服务器作为集中收集文件使用。利用FileChannel(文件通道)技术拷贝文件,FileChannel(文件通道)能够实现文件快速复制。相对于普通拷贝方式(copy方法)来说,FileChannel可以节省拷贝的时间,提高拷贝文件的效率。根据预设的文件通道,把数据源文件拷贝到中转服务器,中转服务器来收集多个节点的数据,比如北京节点机器最后会拷贝到中转服务器,广州节点机器的数据也会拷贝到中转服务器。
具体的,在步骤S2中,即所述文件通道包括文件输入通道和文件输出通道,所述基于预设的文件通道将不同节点的所述源数据文件拷贝至预设的中转服务器的步骤包括:
通过transferTo方式连通文件输入通道和文件输出通道,形成连通关系;
将所述数据源文件通过所述文件输入通道写入所述文件输入通道对应的第一字节缓冲区;
基于所述连通关系,将所述第一字节缓冲区中的数据源文件,传输至所述文件输出通道对应的第二字节缓冲区中;
基于所述文件输出通道,将所述第二字节缓冲区中的数据源文件输出至所述中转服务器。
在本实施例中,可以利用FileChannel的transferTo()方法来将byte(字节)数组在两个通道之间来回传递。transferTo()方法用于实现两个通道(Channel)之间相互连接和数据传递。字节数组可以提高空间利用率。字节数组还可以压缩内容,在网络传输时,能有效压缩传输数据的大小,从而提高效率。该性能比较快,因为FileChannel是通过调用本地方法接口将文件读取到堆外内存,再通过分发数组来用这些数据实现文件的复制或传输,不需要将文件从堆外内存拷贝到java堆中,再从java堆取出数组数据来复制或传输,这样做减少了内核内存到用户内存之间的数据拷贝,从而提升性能;其中,内核内存指某个文件拷贝直接从数据源经过操作系统内核到目标地址。用户内存指某个文件拷贝需要从数据源经过操作系统内核,到JVM虚拟机再到目标地址。JVM虚拟机具有一个堆(Heap),堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在JVM虚拟机启动时创建的。本申请中,先分别创建了两个文件的输入输出流,然后在分别获取到两个文件的文件通道,即文件输入通道和文件输出通道,然后将文件输入通道直接和文件输出通道进行连接,直接将数据源文件写入到中转服务器。不需要进行分别的读取和写入操作了。
需要说明的是:FileChannel会维护一个position用来指向文件内容的绝对位置,这个位置可以通过position()方法来查询,通过position(long)来进行修改。如果position被修改,在此之后,输出的文件内容到字节缓冲区的时候将从这个position位置开始。例如:position为文件中第五个字节的位置,则当前从第五个字节开始拷贝。如果拷贝到第200个字节时,出现了停止拷贝。则下一次继续执行拷贝的话则从第200个字节继续拷贝。可以通过position(long)修改在文件中拷贝的起始位置。
此外,在步骤S2中,即基于预设的文件通道将不同节点的所述数据源文件拷贝至预设的中转服务器的步骤包括:
在当前节点,基于所述文件代码确定当前节点对应的数据源文件的数量;
当确定的数据源文件的数量大于预设阈值时,基于数据源文件创建当前节点的文件通道池,其中,所述文件通道池包括所述文件通道;
将当前节点的所述数据源文件通过所述文件通道池拷贝至中转服务器。
在本实施例中,当确定的数据源文件的数据小于或等于预设阈值时,无需创建文件通道池,直接通过预设的文件通道进行拷贝即可。中转服务器具有对应的目的地址。获取中转服务器的目的地址,将数据源文件拷贝至目的地址,即拷贝至中转服务器。FileChannel本身线程安全,对于多个线程来操作的时候,只有一个线程对该通道的文件进行修改,换言之,影响通道位置或者影响文件大小的操作都是单线程的。FileChannel在使用的时候会先打开一个通道,然后开启一个事务,进行文件拷贝,提交事务,关闭通道;这样一个过程如果频繁的开启事务,提交事务,会比较耗费资源,容易出现性能瓶颈。所以本申请在多线程场景下,会同时读取多个数据源文件,并维护一个文件通道池(FileChannelPool),通过文件通道池实现对不同的数据源文件同时的拷贝,减少文件通道的频繁开启和关闭,并实现对文件通道的统一管理。
其中,所述基于数据源文件创建当前节点的文件通道池的步骤包括:
获取所述数据源文件的数量;
根据所述数据源文件的数量确定文件通道数量,其中,所述文件通道数量等于或大于所述数据源文件的数量;
根据所述文件通道数量创建对应数量的文件通道,生成文件通道池。
在本实施例汇中,文件通道池中会创建多个文件通道(FileChannel),每个通道就是一个,该池中的文件通道数量根据数据源文件动态创建,原则是要比数据源文件的数量多,以保证可以快速的处理数据。
此外,所述将当前节点的所述数据源文件通过所述文件通道池拷贝至中转服务器的步骤包括:
获取当前节点的每个所述数据源文件的散列码的值;
基于所述散列码的值对文件通道的数量进行取余,获得取余结果;
基于所述取余结果确定所述数据源文件对应的文件通道;
将所述数据源文件通过对应的文件通道拷贝至中转服务器。
在本实施例汇中,对于数据源读取的时候具体要传输到哪个通道,通过每个数据源的散列码的值(即hashcode值)对FileChannel的数量进行取余,得到具体用哪个文件通道。随后利用该文件通道进行文件传输,最终传输到目的地址。通过文件通道池来维护多个文件通道,每个文件通道可以并行允许,而单个文件通道又保证了事务性,所以整体来看可以很大程序的提升文件传输性能。
S3:识别所述文件代码的所属批次,控制所述中转服务器汇总属于同一批次的多个节点的数据源文件,生成汇总文件,并发送所述汇总文件至客户端。
在本实施例中,每个文件代码均有其对应的批次,文件代码与批次为多对一的映射关系。根据文件代码与批次多对一的映射关系,识别出文件代码所属的批次。保存不同节点的数据文件到中转服务器,中转服务器作为集中收集文件使用。根据上述的文件通道池组件,快速的把数据源文件拷贝到中转服务器,中转服务器来收集多个节点的数据,比如北京节点机器最后会拷贝到中转服务器,广州节点机器的数据也会拷贝到中转服务器。中转服务器根据批次来对多个节点数据源文件进行汇总,对于来自不同节点的数据源文件来说,其对应的批次可能相同,也可能不同。而对于需要进行汇总的数据源文件来说,其对应的批次是相同的。数据源文件对应的文件代码所属的批次,是相关人员根据数据源文件的类型进行预先配置的。如不同节点的财务报表的文件代码不同,但都属于相同的财务报表批次。而同一节点中的财务报表和考勤报表的文件代码不同,也不属于相同的批次,一个属于财务报表批次,另一个属于考勤报表批次。调用tar汇总数据源文件,生成汇总文件,即tar文件(即将2个或2个以上的数据源文件打包成一个文件),其中,tar为文件汇总命令,在需要汇总数据源文件生成汇总文件名为test.tar时,直接使用tar命令即可。
具体的,在步骤S3中,即所述发送所述汇总文件至客户端的步骤包括:
控制所述中转服务器压缩所述汇总文件,生成压缩文件,并将所述压缩文件发送至客户端。
在本实施例中,对汇总文件(即tar文件)进行高比例的文件压缩,实现在中转服务器生成一个较小的压缩文件。
其中,所述控制所述中转服务器压缩所述汇总文件,生成压缩文件,并将所述压缩文件发送至客户端的步骤包括:
控制所述中转服务器压缩所述汇总文件,生成压缩文件和对应的状态标识,将所述状态标识发送至客户端,以表示文件为待下载状态;
当识别到所述中转服务器接收到所述客户端发送的文件下载请求时,控制所述中转服务器根据压缩文件名称确定对应的压缩文件,并将对应的所述压缩文件发送至客户端,其中,所述文件下载请求携带有所述压缩文件名称。
在本实施例中,中转服务器的文件生成之后会返回一个文件生成完成的状态标识给客户端,客户端接收到这个标识之后,可以点击下载文件,其中,状态标识是指文件可下载的通知提示标识。客户端发送一个下载的请求至中转服务器,中转服务器把对应的文件返回至前端使用。其中,中转服务器将压缩后的文件以文件流的方式输出到浏览器前端。文件流指从文件读入数据时的数据输入流,或向文件写数据时的数据输出流。
本申请通过建立文件通道来拷贝数据源文件,有效提升文件下载效率。部署中转服务器,降低本部计算机对数据的处理负担。同时将不同节点的数据源文件通过文件通道拷贝至中转服务器,根据批次对来自不同节点的数据源文件进行分类汇总,有效提升了来自不同节点但需要对数据源文件同时高速下载的要求,满足了本部对数据源文件的下载速度的需求,满足业务对多个数据库的数据采集需求,提升用户体验。
需要强调的是,为进一步保证上述汇总文件的私密和安全性,上述汇总文件还可以存储于一区块链的节点中。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本申请可应用于智慧政务领域中,从而推动智慧城市的建设,具体的,在政务人员工作中,往往需要同时下载不同地区的同一批相关联的文件,通过本申请提供的方法能够有效加快文件下载速度,提升工作效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图3,作为对上述图2所示方法的实现,本申请提供了一种分布式批量下载文件装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图3所示,本实施例所述的分布式批量下载文件装置300包括:确定模块301、拷贝模块302以及汇总模块303。其中:确定模块301,用于接收文件代码,根据接收的不同的文件代码确定不同节点的数据源文件;拷贝模块302,用于基于预设的文件通道将不同节点的所述数据源文件拷贝至预设的中转服务器中;以及汇总模块303,用于识别所述文件代码的所属批次,控制所述中转服务器汇总属于同一批次的多个节点的数据源文件,生成汇总文件,并发送所述汇总文件至客户端。
在本实施例中,本申请通过建立文件通道来拷贝数据源文件,有效提升文件下载效率。部署中转服务器,降低本部计算机对数据的处理负担。同时将不同节点的数据源文件通过文件通道拷贝至中转服务器,根据批次对来自不同节点的数据源文件进行分类汇总,有效提升了来自不同节点但需要对数据源文件同时高速下载的要求,满足了本部对数据源文件的下载速度的需求,满足业务对多个数据库的数据采集需求,提升用户体验。
所述拷贝模块302包括连通子模块、写入子模块、第一传输子模块和第二传输子模块。所述连通子模块用于通过transferTo方式连通文件输入通道和文件输出通道,形成连通关系;写入子模块用于将所述数据源文件通过所述文件输入通道写入所述文件输入通道对应的第一字节缓冲区;第一传输子模块用于基于所述连通关系,将所述第一字节缓冲区中的数据源文件,传输至所述文件输出通道对应的第二字节缓冲区中;第二传输子模块用于基于所述文件输出通道,将所述第二字节缓冲区中的数据源文件输出至所述中转服务器。
所述拷贝模块302还包括确定子模块、创建子模块和拷贝子模块。确定子模块用于在当前节点,基于所述文件代码确定当前节点对应的数据源文件的数量;创建子模块用于当确定的数据源文件的数量大于预设阈值时,基于数据源文件创建当前节点的文件通道池,其中,所述文件通道池包括所述文件通道;拷贝子模块用于将当前节点的所述数据源文件通过所述文件通道池拷贝至中转服务器。
所述创建子模块包括获取单元、确定单元和创建单元。获取单元用于获取所述数据源文件的数量;确定单元用于根据所述数据源文件的数量确定文件通道数量,其中,所述文件通道数量等于或大于所述数据源文件的数量;创建单元用于根据所述文件通道数量创建对应数量的文件通道,生成文件通道池。
所述拷贝子模块包括散列单元、取余单元、结果单元和拷贝单元。散列单元用于获取当前节点的每个所述数据源文件的散列码的值;取余单元用于基于所述散列码的值对文件通道的数量进行取余,获得取余结果;结果单元用于基于所述取余结果确定所述数据源文件对应的文件通道;拷贝单元用于将所述数据源文件通过对应的文件通道拷贝至中转服务器。
在本实施例的一些可选的实现方式中,上述汇总模块303进一步用于:控制所述中转服务器压缩所述汇总文件,生成压缩文件,并将所述压缩文件发送至客户端。
汇总模块303包括压缩子模块和识别子模块。压缩子模块用于控制所述中转服务器压缩所述汇总文件,生成压缩文件和对应的状态标识,将所述状态标识发送至客户端,以表示文件为待下载状态,识别子模块用于当识别到所述中转服务器接收到所述客户端发送的文件下载请求时,控制所述中转服务器根据压缩文件名称确定对应的压缩文件,并将对应的所述压缩文件发送至客户端,其中,所述文件下载请求携带有所述压缩文件名称。
本申请通过建立文件通道来拷贝数据源文件,有效提升文件下载效率。部署中转服务器,降低本部计算机对数据的处理负担。同时将不同节点的数据源文件通过文件通道拷贝至中转服务器,根据批次对来自不同节点的数据源文件进行分类汇总,有效提升了来自不同节点但需要对数据源文件同时高速下载的要求,满足了本部对数据源文件的下载速度的需求,满足业务对多个数据库的数据采集需求,提升用户体验。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备200包括通过系统总线相互通信连接存储器201、处理器202、网络接口203。需要指出的是,图中仅示出了具有组件201-203的计算机设备200,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器201至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器201可以是所述计算机设备200的内部存储单元,例如该计算机设备200的硬盘或内存。在另一些实施例中,所述存储器201也可以是所述计算机设备200的外部存储设备,例如该计算机设备200上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器201还可以既包括所述计算机设备200的内部存储单元也包括其外部存储设备。本实施例中,所述存储器201通常用于存储安装于所述计算机设备200的操作系统和各类应用软件,例如分布式批量下载文件方法的计算机可读指令等。此外,所述存储器201还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器202在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器202通常用于控制所述计算机设备200的总体操作。本实施例中,所述处理器202用于运行所述存储器201中存储的计算机可读指令或者处理数据,例如运行所述分布式批量下载文件方法的计算机可读指令。
所述网络接口203可包括无线网络接口或有线网络接口,该网络接口203通常用于在所述计算机设备200与其他电子设备之间建立通信连接。
在本实施例中,有效提升文件下载效率。满足了本部对数据源文件的下载速度的需求,满足业务对多个数据库的数据采集需求,提升用户体验。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的分布式批量下载文件方法的步骤。
在本实施例中,有效提升文件下载效率。满足了本部对数据源文件的下载速度的需求,满足业务对多个数据库的数据采集需求,提升用户体验。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (8)
1.一种分布式批量下载文件方法,其特征在于,包括下述步骤:
接收文件代码,根据接收的不同的文件代码确定不同节点的数据源文件;
基于预设的文件通道将不同节点的所述数据源文件拷贝至预设的中转服务器中;以及
识别所述文件代码的所属批次,控制所述中转服务器汇总属于同一批次的多个节点的数据源文件,生成汇总文件,并发送所述汇总文件至客户端;
基于预设的文件通道将不同节点的所述数据源文件拷贝至预设的中转服务器的步骤包括:
在当前节点,基于所述文件代码确定当前节点对应的数据源文件的数量;
当确定的数据源文件的数量大于预设阈值时,基于数据源文件创建当前节点的文件通道池,其中,所述文件通道池包括所述文件通道;
将当前节点的所述数据源文件通过所述文件通道池拷贝至中转服务器;
所述基于数据源文件创建当前节点的文件通道池的步骤包括:
获取所述数据源文件的数量;
根据所述数据源文件的数量确定文件通道数量,其中,所述文件通道数量等于或大于所述数据源文件的数量;
根据所述文件通道数量创建对应数量的文件通道,生成文件通道池。
2.根据权利要求1所述的分布式批量下载文件方法,其特征在于,所述将当前节点的所述数据源文件通过所述文件通道池拷贝至中转服务器的步骤包括:
获取当前节点的每个所述数据源文件的散列码的值;
基于所述散列码的值对文件通道的数量进行取余,获得取余结果;
基于所述取余结果确定所述数据源文件对应的文件通道;
将所述数据源文件通过对应的文件通道拷贝至中转服务器。
3.根据权利要求1所述的分布式批量下载文件方法,其特征在于,所述文件通道包括文件输入通道和文件输出通道,所述基于预设的文件通道将不同节点的所述数据源文件拷贝至预设的中转服务器的步骤包括:
通过预设的transferTo方式连通文件输入通道和文件输出通道,形成连通关系;
将所述数据源文件通过所述文件输入通道写入所述文件输入通道对应的第一字节缓冲区;
基于所述连通关系,将所述第一字节缓冲区中的数据源文件,传输至所述文件输出通道对应的第二字节缓冲区中;
基于所述文件输出通道,将所述第二字节缓冲区中的数据源文件输出至所述中转服务器。
4.根据权利要求1所述的分布式批量下载文件方法,其特征在于,所述发送所述汇总文件至客户端的步骤包括:
控制所述中转服务器压缩所述汇总文件,生成压缩文件,并将所述压缩文件发送至客户端。
5.根据权利要求4所述的分布式批量下载文件方法,其特征在于,所述控制所述中转服务器压缩所述汇总文件,生成压缩文件,并将所述压缩文件发送至客户端的步骤包括:
控制所述中转服务器压缩所述汇总文件,生成压缩文件和对应的状态标识,将所述状态标识发送至客户端,以表示文件为待下载状态;
当识别到所述中转服务器接收到所述客户端发送的文件下载请求时,控制所述中转服务器根据压缩文件名称确定对应的压缩文件,并将对应的所述压缩文件发送至客户端,其中,所述文件下载请求携带有所述压缩文件名称。
6.一种分布式批量下载文件装置,其特征在于,所述分布式批量下载文件装置使用如权利要求1至5任意一项所述的分布式批量下载文件方法的步骤,所述分布式批量下载文件装置包括:
确定模块,用于接收文件代码,根据接收的不同的文件代码确定不同节点的数据源文件;
拷贝模块,用于基于预设的文件通道将不同节点的所述数据源文件拷贝至预设的中转服务器中;以及
汇总模块,用于识别所述文件代码的所属批次,控制所述中转服务器汇总属于同一批次的多个节点的数据源文件,生成汇总文件,并发送所述汇总文件至客户端。
7.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至5中任一项所述的分布式批量下载文件方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至5中任一项所述的分布式批量下载文件方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011056330.4A CN112199442B (zh) | 2020-09-29 | 2020-09-29 | 分布式批量下载文件方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011056330.4A CN112199442B (zh) | 2020-09-29 | 2020-09-29 | 分布式批量下载文件方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112199442A CN112199442A (zh) | 2021-01-08 |
CN112199442B true CN112199442B (zh) | 2023-07-21 |
Family
ID=74008545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011056330.4A Active CN112199442B (zh) | 2020-09-29 | 2020-09-29 | 分布式批量下载文件方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112199442B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112925758A (zh) * | 2021-02-05 | 2021-06-08 | 深圳市优必选科技股份有限公司 | 生成压缩包的方法、装置及终端设备 |
CN113259225B (zh) * | 2021-05-13 | 2022-06-28 | 杭州米络星科技(集团)有限公司 | 即时通信方法、服务器及即时通信系统 |
CN114443581B (zh) * | 2022-04-11 | 2022-06-17 | 苏州浪潮智能科技有限公司 | 一种下载控制方法、装置、设备及存储介质 |
CN114697316B (zh) * | 2022-04-24 | 2024-03-12 | 平安科技(深圳)有限公司 | 数据的批量下载方法、装置、设备及计算机可读介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103888513A (zh) * | 2014-02-25 | 2014-06-25 | 世纪龙信息网络有限责任公司 | 服务器端多文件下载方法及系统 |
CN110263061A (zh) * | 2019-06-17 | 2019-09-20 | 郑州阿帕斯科技有限公司 | 一种数据查询方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7594035B2 (en) * | 2008-02-22 | 2009-09-22 | Tactara, Llc | Methods of providing published content |
US8290920B2 (en) * | 2009-09-30 | 2012-10-16 | Zynga Inc. | System and method for remote updates |
US10067944B2 (en) * | 2017-01-09 | 2018-09-04 | Splunk, Inc. | Cache aware searching of buckets in remote storage |
-
2020
- 2020-09-29 CN CN202011056330.4A patent/CN112199442B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103888513A (zh) * | 2014-02-25 | 2014-06-25 | 世纪龙信息网络有限责任公司 | 服务器端多文件下载方法及系统 |
CN110263061A (zh) * | 2019-06-17 | 2019-09-20 | 郑州阿帕斯科技有限公司 | 一种数据查询方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112199442A (zh) | 2021-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112199442B (zh) | 分布式批量下载文件方法、装置、计算机设备及存储介质 | |
CN112162965B (zh) | 一种日志数据处理的方法、装置、计算机设备及存储介质 | |
CN113254445B (zh) | 实时数据存储方法、装置、计算机设备及存储介质 | |
CN112380227B (zh) | 基于消息队列的数据同步方法、装置、设备及存储介质 | |
CN112182004B (zh) | 实时查看数据方法、装置、计算机设备及存储介质 | |
CN111680477A (zh) | 导出电子表格文件的方法、装置、计算机设备及存储介质 | |
CN115455058A (zh) | 缓存数据的处理方法、装置、计算机设备及存储介质 | |
CN115470156A (zh) | 基于rdma的内存使用方法、系统、电子设备和存储介质 | |
CN112860662B (zh) | 自动化生产数据血缘关系建立方法、装置、计算机设备及存储介质 | |
CN113010542A (zh) | 业务数据处理方法、装置、计算机设备及存储介质 | |
CN116521639A (zh) | 一种日志数据的处理方法、电子设备和计算机可读介质 | |
CN113918356B (zh) | 基于cuda数据快速同步方法、装置、计算机设备及存储介质 | |
CN115757492A (zh) | 一种热点数据的处理方法、装置、计算机设备及存储介质 | |
CN116992462A (zh) | 基于大数据传输场景的明文信息下线方法及其相关设备 | |
CN111988406B (zh) | 一种监管文件报送方法、装置、设备和可读介质 | |
CN117407191A (zh) | 数据处理方法、系统、计算机设备及存储介质 | |
CN114969482A (zh) | 在线配置接口自动完成请求的方法、及其相关设备 | |
CN116775649A (zh) | 一种数据分类存储方法、装置、计算机设备及存储介质 | |
CN116842050A (zh) | 多维度状态数据处理方法、装置、计算机设备及存储介质 | |
CN117348851A (zh) | 一种接口动态生成方法、装置、设备及其存储介质 | |
CN114218191A (zh) | 系统功能迁移方法、装置、计算机设备及存储介质 | |
CN116996292A (zh) | 接口配置方法、装置、计算机设备及存储介质 | |
CN117743291A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN116975101A (zh) | 一种数据统一查询方法、装置、计算机设备及存储介质 | |
CN117271156A (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 |