CN115098451B - 一种基于文件的数据传输方法 - Google Patents
一种基于文件的数据传输方法 Download PDFInfo
- Publication number
- CN115098451B CN115098451B CN202210683228.XA CN202210683228A CN115098451B CN 115098451 B CN115098451 B CN 115098451B CN 202210683228 A CN202210683228 A CN 202210683228A CN 115098451 B CN115098451 B CN 115098451B
- Authority
- CN
- China
- Prior art keywords
- file
- data
- cache
- writing
- seq
- 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
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000005540 biological transmission Effects 0.000 title claims abstract description 25
- 238000004140 cleaning Methods 0.000 claims description 13
- 230000003068 static effect Effects 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
Classifications
-
- 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/172—Caching, prefetching or hoarding of files
-
- 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/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- 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/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
- G06F16/166—File name conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Library & Information Science (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及软件系统的数据传输领域,提供了一种基于文件的数据传输方法。解决现有技术中互联网应用业务系统在数据传输时,或多或少的会对系统的运行和稳定有所影响,存在无法将数据可靠无损的传输到目的地发可能性,且存在当系统瞬时产生大量数据时会影响业务系统的性能以及稳定运行的问题。本发明通过将数据写入缓存,对缓存进行判断,将缓存内的数据以文件的方式写入本地磁盘,然后将写入本地磁盘的文件内的数据data传送到目标机,然后目标机接收到数据data后,将数据data写入数据库,如失败,则将数据data以文件的方式写入本地磁盘,然后通过轮询任务将写入本地磁盘的文件内的data数据写入数据库,这样解决了当海量数据涌入缓存,导致系统故障的问题。
Description
技术领域
本发明涉及软件系统的数据传输领域,提供了一种基于文件的数据传输方法。
背景技术
数据传输一直是软件行业的重要内容,关于数据传输的方案也层出不穷,常见的有直接通过网络将数据传输给目标系统,也有通过将消息中间件作为桥接,现将消息发送至消息中间件,目标系统再消费消息中间件消息的方式发送消息。
直接通过网络传输给目标系统会受限于网路带宽和接收系统的处理能力,如果网络带宽比较小或者目标系统接收能力有限,则发送端必然会降低吞吐量,如果发送端是重要业务系统,则可能会导致业务系统的处理能力降低,导致生产事故。
通过消息中间件作为桥接的方式处理消息,虽然可以提高吞吐量,但这种方式需要消息发送和接收方都需要对接消息中间件,无形中增加了系统复杂度,同时消息中间件的可靠性也会成为其中的关键一环。
目前在互联网应用业务系统在实际使用中会会产生大量的数据,这些数据最开始都是缓存在内存里,并通过互联网进行传输到其他系统并进行存储,特别是互联网应用业务系统会出现瞬时产生大量数据,当这些数据未被及时处理,时将会内存的缓存部分将会溢出,造成系统故障,且现有技术中互联网应用业务系统在数据传输时,或多或少的会对系统的运行和稳定有所影响,存在无法将数据可靠无损的传输到目的地发可能性,且存在当系统瞬时产生大量数据时会影响业务系统的性能以及稳定运行。
现有技术中当海量数据涌入缓存,业务系统无法处理时,则会出现业务系统拒绝服务的问题。
发明内容
本发明的目的在于解决现有技术中互联网应用业务系统在数据传输时,或多或少的会对系统的运行和稳定有所影响,存在无法将数据可靠无损的传输到目的地发可能性,且存在当系统瞬时产生大量数据时会影响业务系统的性能以及稳定运行的问题。
为了实现上述目的本发明采用以下技术手段:
一种基于文件的数据传输方法,文件接收系统与业务系统部署在不同的服务器上,包括以下步骤:
业务系统数据处理主流程:
将业务系统数据写入缓存,启用缓存定时清理任务,同时当缓存数据的数据量满足阈值条件,调用序列号生成流程获取当前时间序列号seq,将缓存数据以文件名“年月日时分秒+seq.dat”写入业务系统所在的本地磁盘的目录D;
缓存定时清理任务:
定时轮询,判断缓存中是否有数据,如有数据,则调用序列号生成流程获取当前时间序列号seq,将缓存数据以文件名“年月日时分秒+seq.dat”写入业务系统所在的本地磁盘;
序列号生成流程:
用于在规定时间段内生成唯一的当前时间序列号seq,所述规定时间段为1秒或者1毫秒;
文件扫描任务流程:
扫描目录D,获得后缀名为.dat的文件列表,并将文件句柄放入列表List,遍历List,将List中文件句柄对应文件的后缀名改为.data.sync;
磁盘文件处理系统:
扫描目录D,获取目录D下所有以.data.sync为后缀名的文件句柄列表,并赋值给变量L,遍历变量L,读取文件句柄对应的.data.sync文件的数据data,数据data发送到文件数据接收系统。
文件数据接收系统:
启动磁盘数据文件入库处理任务,同时接收磁盘数据文件处理发送过来的数据data存入缓存,并解析之后写入数据库,如果写入成功,则流程结束,否则,调用序列号生成流程获取当前时间序列号seq,将缓存数据以文件名“年月日时分秒+seq.dat”保存至文件数据接收系统所在的本地磁盘B的目录Dir:
磁盘数据文件入库处理任务
扫描目录Dir,将Dir目录下所有后缀名为.dat的文件句柄放入L,遍历L,读取文件句柄对应的.dat的文件中的数据data,将数据data写入数据库,如果写入成功,则删除目录Dir中文件句柄对应的.dat文件。
上述技术方案中,序列号生成流程包括以下步骤:
步骤3.1:定义全局静态变量lastTime,其初始值为当前时间,精确到秒;
步骤3.2:定义全局静态变量seq,其初始值为0;
步骤3.3:获取锁L;
步骤3.2:获取当前时间t,精确到秒;
步骤3.4:如果t等于lastTime,则行步骤3.4.1,否则执行3.5;
步骤3.4.1:将seq的值加1,如果seq值大于10000,则seq值重置为0,否则执行步骤3.5;
步骤3.5:将lastTime值设置为t;
步骤3.6:释放锁L。
上述技术方案中,业务系统数据处理主流程具体包括:
步骤1.1:定义全局缓存变量C,定义数据将要写入的业务系统所在的本地磁盘的目录;
步骤1.2:启动缓存定时清理任务,该任务为定时循环任务,且该任务为单独的线程执行;
步骤1.3:获得缓存C的锁L,接着将业务系统的数据写入缓存C;
步骤1.5:判断缓存C中的数据量是否满足写入磁盘的条件,如果是,则调用流程1.5.1,否则执行1.6
步骤1.5.1:则调用序列号生成流程,获取当前时间序列号seq;
步骤1.5.2:在目录D中创建文件,并将文件命名为年月日时分秒+seq.tmp,该文件此时是一个空文件;
步骤1.5.3:将缓存C中的数据写入.tmp文件;
步骤1.5.4:缓存C中的数据写完之后,将.tmp文件的后缀名改为.dat
步骤1.5.5:清空缓存C;
步骤1.6:释放缓存锁L。
上述技术方案中,缓存定时清理任务包括以下步骤:
步骤2.1:获取缓存C的锁L;
步骤2.2:判断缓存C中是否有数据,如果有,则执行步骤2.2.1,否则,执行步骤2.3;
步骤2.2.1:调用步骤3序列号生成流程,获取当前时间序列号seq;
步骤2.2.2:在目录D中创建文件,并将文件命名为:年月日时分秒+seq.tmp;
步骤2.2.3:将缓存C中的数据写入.tmp文件;
步骤2.2.4:将.tmp文件后缀名重命名为.dat;
步骤2.2.5:清空缓存C;
步骤2.3:释放缓存锁L。
上述技术方案中,磁盘文件处理系统包括以下步骤:
步骤4.1:启动文件扫描任务,该任务为定时循环任务,且由一单独线程执行;
步骤4.2:扫描目录D下所有后缀名为.data.sync的文件,并将所有扫描到的文件句柄存在列表L;
步骤4.3:遍历列表L,读取文件句柄对应的.data.sync文件的数据data;
步骤4.4:将数据data发送到文件数据接收系统,发送操作由单独线程执行,如果发送成功,则执行步骤4.5,否则执行步骤4.6;
步骤4.5:删除文件句柄对应的.data.sync文件;
步骤4.6:将.data.sync文件后缀名重新改为.dat。
上述技术方案中,文件数据接收系统包括以下步骤:
步骤6.1:定义全局数据写磁盘目录Dir;
步骤6.2:启动磁盘数据文件入库处理任务,该任务为定时循环任务,且为单独的线程执行
步骤6.2:接收磁盘数据文件处理系统发送过来的数据data;
步骤6.3:将数据解析之后写入数据库或者其他介质,如果写入成功,则流程结束,否则,执行步骤6.4;
步骤6.4:调用序列号生成流程,获取当前时间唯一序列号seq;
步骤6.5:在目录Dir新建文件名称为年月日时分秒+seq.tmp的文件,将数据data写入.tmp文件;
步骤6.6:数据data写完之后,将.tmp文件后缀名改为.dat。
上述技术方案中,磁盘数据文件入库处理任务流程包括以下步骤:
步骤7.1:扫描目录Dir;
步骤7.2:将Dir目录下所有后缀名为.dat的文件句柄放入L;
步骤7.3:遍历L;
步骤7.4:读取文件句柄对应的.dat文件的数据data,将数据data写入数据库或者其他介质,如果写入成功,则删除文件句柄对应的.dat文件
上述技术方案中,文件扫描任务流程包括以下步骤:
步骤8.1:扫描磁盘目录D,获得后缀名为.dat的文件列表,并将文件句柄放入列表List
步骤8.2:遍历List
步骤8.3:将List中文件句柄对应文件的后缀名改为.data.sync
因为本发明采用上述技术方案,因此具备以下有益效果:
1、通过不断进行文件重命名的方式来隔离各个系统对文件的处理,以防止文件读写冲突。
2、案通过写本地磁盘的方式可以方便实现数据的缓存,防止文件丢失。
3、案通过相互独立的系统对文件读写和发送进行隔离操作,可以防止因为数据发送和读写瓶颈导致数据待发送系统的吞吐量降低。
4、案通过循环重命名的方式,可以保证在数据发送失败的情况下不丢失并且可以重复处理。
5、本地落盘的方式缓存数据可以有效的降低因为接收方的因素导致的业务系统稳定性和吞吐量降低的问题。
6、系统与文件数据发送系统相互独立,通过共享磁盘目录的方式对数据进行处理可以有效降低因为文件数据发送系统导致的业务系统的可靠性和吞吐量降低的问题。
7、本地落盘的方式缓存数据,可以有效的降低因为第三方中间件因素导致的业务系统的稳定性和吞吐量降低的几率。
8、本地落盘与共享存储的方式可以降低对第三方中间件的应用,降低技术成本
9、重命名的方式可以有效的控制文件读写冲突。
10、可以有效的降低网络因素导致的系统稳定性和吞吐量降低的问题。
附图说明
图1为整体框架图;
图2业务系统数据处理主流程示意图;
图3缓存定时清理任务流程示意图;
图4序列号生成流程示意图;
图5磁盘文件处理系统主流程示意图;
图6文件扫描任务流程示意图;
图7文件数据接收系统流程示意图;
图8磁盘数据文件入库处理任务流程示意图。
具体实施方式
以下将对本发明的实施例给出详细的说明。尽管本发明将结合一些具体实施方式进行阐述和说明,但需要注意的是本发明并不仅仅只局限于这些实施方式。相反,对本发明进行的修改或者等同替换,均应涵盖在本发明的权利要求范围当中。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员将理解,没有这些具体细节,本发明同样可以实施。
一种基于文件的数据传输方法,文件接收系统与业务系统部署在不同的服务器上,包括以下步骤:
业务系统数据处理主流程:
将业务系统数据写入缓存,启用缓存定时清理任务,同时当缓存数据的数据量满足阈值条件,调用序列号生成流程获取当前时间序列号seq,将缓存数据以文件名“年月日时分秒+seq.dat”写入业务系统所在的本地磁盘的目录D:
缓存定时清理任务:
定时轮询,判断缓存中是否有数据,如有数据,则调用序列号生成流程获取当前时间序列号seq,将缓存数据以文件名“年月日时分秒+seq.dat”写入业务系统所在的本地磁盘;
序列号生成流程:
用于在规定时间段内生成唯一的当前时间序列号seq,所述规定时间段为1秒或者1毫秒;
文件扫描任务流程:
扫描目录D,获得后缀名为.dat的文件列表,并将文件句柄放入列表List,遍历List,将List中文件句柄对应文件的后缀名改为.data.sync;
磁盘文件处理系统:
扫描目录D,获取目录D下所有以.data.sync为后缀名的文件句柄列表,并赋值给变量L,遍历变量L,读取文件句柄对应的.data.sync文件的数据data,数据data发送到文件数据接收系统。
文件数据接收系统:
启动磁盘数据文件入库处理任务,同时接收磁盘数据文件处理发送过来的数据data存入缓存,并解析之后写入数据库,如果写入成功,则流程结束,否则,调用序列号生成流程获取当前时间序列号seq,将缓存数据以文件名“年月日时分秒+seq.dat”保存至文件数据接收系统所在的本地磁盘B的目录Dir:
值得注意的是对于磁盘文件处理系统中,发送的仅仅是数据data而文件接收系统接收到data数据后,又需要将数据重新命名后再保存到Dir目录,为什么不直接传送包含文件名的.data.sync文件呢,这是因为当多个应用,即多个服务器均布置有磁盘文件处理系统时,很大概率会出现.data.sync文件的名称一致,因此本发明仅仅传送数据data,在文件数据接收系统对数据data再进行生成新的文件名进行保存,完美的解决了多个磁盘文件处理系统情况的文件名重复问题。
磁盘数据文件入库处理任务
扫描目录Dir,将Dir目录下所有后缀名为.dat的文件句柄放入L,遍历L,读取文件句柄对应的.dat的文件中的数据data,将数据data写入数据库,如果写入成功,则删除目录Dir中文件句柄对应的.dat文件。
上述技术方案中,序列号生成流程包括以下步骤:
步骤3.1:定义全局静态变量lastTime,其初始值为当前时间,精确到秒;
步骤3.2:定义全局静态变量seq,其初始值为0;
步骤3.3:获取锁L;
步骤3.2:获取当前时间t,精确到秒;
步骤3.4:如果t等于lastTime,则行步骤3.4.1,否则执行3.5;
步骤3.4.1:将seq值加1,如果seq值大于10000,则seq值重置为0,否则执行步骤3.5;
步骤3.5:将lastTime值设置为t;
步骤3.6:释放锁L。
值得注意的是,在每一秒,可能会生成若干个.dat文件,那么我们就需要在1秒或则1毫秒内生成对应的序列号。
上述技术方案中,业务系统数据处理主流程具体包括:
步骤1.1:定义全局缓存变量C,定义数据将要写入的业务系统所在的本地磁盘的目录;
步骤1.2:启动缓存定时清理任务,该任务为定时循环任务,且该任务为单独的线程执行;
步骤1.3:获得缓存C的锁L,接着将业务系统的数据写入缓存C;
步骤1.5:判断缓存C中的数据量是否满足写入磁盘的条件,如果是,则调用流程1.5.1,否则执行1.6
步骤1.5.1:则调用序列号生成流程,获取当前时间序列号seq;
步骤1.5.2:在目录D中创建文件,并将文件命名为年月日时分秒+seq.tmp,该文件此时是一个空文件;
步骤1.5.3:将缓存C中的数据写入.tmp文件;
步骤1.5.4:缓存C中的数据写完之后,将.tmp文件的后缀名改为.dat
步骤1.5.5:清空缓存C;
步骤1.6:释放缓存锁L。
上述技术方案中,缓存定时清理任务包括以下步骤:
步骤2.1:获取缓存C的锁L;
步骤2.2:判断缓存C中是否有数据,如果有,则执行步骤2.2.1,否则,执行步骤2.3;
步骤2.2.1:调用步骤3序列号生成流程,获取当前时间序列号seq;
步骤2.2.2:在目录D中创建文件,并将文件命名为:年月日时分秒+seq.tmp;
步骤2.2.3:将缓存C中的数据写入.tmp文件;
步骤2.2.4:将.tmp文件后缀名重命名为.dat;
步骤2.2.5:清空缓存C;
步骤2.3:释放缓存锁L。
上述技术方案中,磁盘文件处理系统包括以下步骤:
步骤4.1:启动文件扫描任务,该任务为定时循环任务,且由一单独线程执行;
步骤4.2:扫描目录D下所有后缀名为.data.sync的文件,并将所有扫描到的文件句柄存在列表L;
步骤4.3:遍历列表L,读取文件句柄对应的.data.sync文件的数据data;
步骤4.4:将数据data发送到文件数据接收系统,发送操作由单独线程执行,如果发送成功,则执行步骤4.5,否则执行步骤4.6;
步骤4.5:删除文件句柄对应的.data.sync文件;
步骤4.6:将.data.sync文件后缀名重新改为.dar。
上述技术方案中,文件数据接收系统包括以下步骤:
步骤6.1:定义全局数据写磁盘目录Dir;
步骤6.2:启动磁盘数据文件入库处理任务,该任务为定时循环任务,且为单独的线程执行
步骤6.2:接收磁盘数据文件处理系统发送过来的数据data;
步骤6.3:将数据解析之后写入数据库或者其他介质,如果写入成功,则流程结束,否则,执行步骤6.4;
步骤6.4:调用序列号生成流程,获取当前时间唯一序列号seq;
步骤6.5:在目录Dir新建文件名称为年月日时分秒+seq.tmp的文件,将数据data写入.tmp文件;
步骤6.6:数据data写完之后,将.tmp文件后缀名改为.dat。
因为在文件接收系统接收到数据data时,可能因为数据库或者其他网络原因,导致无法将data数据写入数据库的,会将数据data写入文件数据接收系统的本地磁盘的Dir目录,然后通过磁盘数据文件入库处理任务流程将Dir目录下的.dat文件写入数据库,保证数据稳定写入。
上述技术方案中,磁盘数据文件入库处理任务流程包括以下步骤:
步骤7.1:扫描目录Dir;
步骤7.2:将Dir目录下所有后缀名为.dat的文件句柄放入L;
步骤7.3:遍历L;
步骤7.4:读取文件句柄对应的.dat文件的数据data,将数据data写入数据库或者其他介质,如果写入成功,则删除文件句柄对应的.dat文件。
上述技术方案中,文件扫描任务流程包括以下步骤:
步骤8.1:扫描磁盘目录D,获得后缀名为.dat的文件列表,并将文件句柄放入列表List
步骤8.2:遍历List
步骤8.3:将List中文件句柄对应文件的后缀名改为.data.sync。
Claims (8)
1.一种基于文件的数据传输方法,文件接收系统与业务系统部署在不同的服务器上,其特征在于,包括以下步骤:
业务系统数据处理主流程:
将业务系统数据写入缓存,启用缓存定时清理任务,同时当缓存数据的数据量满足阈值条件,调用序列号生成流程获取当前时间序列号seq,将缓存数据以文件名“年月日时分秒+seq.dat”写入业务系统所在的本地磁盘的目录D;
缓存定时清理任务:
定时轮询,判断缓存中是否有数据,如有数据,则调用序列号生成流程获取当前时间序列号seq,将缓存数据以文件名“年月日时分秒+seq.dat”写入业务系统所在的本地磁盘;
序列号生成流程:
用于在规定时间段内生成唯一的当前时间序列号seq,所述规定时间段为1秒或者1毫秒;
文件扫描任务流程:
扫描目录D,获得后缀名为.dat的文件列表,并将文件句柄放入列表List,遍历List,将List中文件句柄对应文件的后缀名改为.data.sync;
磁盘文件处理系统:
扫描目录D,获取目录D下所有以.data.sync为后缀名的文件句柄列表,并赋值给变量L,遍历变量L,读取文件句柄对应的.data.sync文件的数据data,数据data发送到文件数据接收系统;
文件数据接收系统:
启动磁盘数据文件入库处理任务,同时接收磁盘数据文件处理系统发送过来的数据data存入缓存,并解析之后写入数据库,如果写入成功,则流程结束,否则,调用序列号生成流程获取当前时间序列号seq,将缓存数据以文件名“年月日时分秒+seq.dat”保存至文件数据接收系统所在的本地磁盘B的目录Dir;
磁盘数据文件入库处理任务
扫描目录Dir,将Dir目录下所有后缀名为.dat的文件句柄放入L,遍历L,读取文件句柄对应的.dat的文件中的数据data,将数据data写入数据库,如果写入成功,则删除目录Dir中文件句柄对应的.dat文件。
2.根据权利要求1所述的一种基于文件的数据传输方法,其特征在于,序列号生成流程包括以下步骤:
步骤3.1:定义全局静态变量lastTime,其初始值为当前时间,精确到秒;
步骤3.2:定义全局静态变量seq,其初始值为0;
步骤3.3:获取锁L;
步骤3.2:获取当前时间t,精确到秒;
步骤3.4:如果t等于lastTime,则行步骤3.4.1,否则执行3.5;
步骤3.4.1:如果seq值大于10000,则seq值重置为0,否则执行步骤3.5;
步骤3.5:将lastTime值设置为t;
步骤3.6:释放锁L。
3.根据权利要求2所述的一种基于文件的数据传输方法,其特征在于,业务系统数据处理主流程具体包括:
步骤1.1:定义全局缓存变量C,定义数据将要写入的业务系统所在的本地磁盘的目录;
步骤1.2:启动缓存定时清理任务,该任务为定时循环任务,且该任务为单独的线程执行;
步骤1.3:获得缓存C的锁L,接着将业务系统的数据写入缓存C;
步骤1.5:判断缓存C中的数据量是否满足写入磁盘的条件,如果是,则调用流程1.5.1,否则执行1.6
步骤1.5.1:则调用序列号生成流程,获取当前时间序列号seq;
步骤1.5.2:在目录D中创建文件,并将文件命名为年月日时分秒+seq.tmp,该文件此时是一个空文件;
步骤1.5.3:将缓存C中的数据写入.tmp文件;
步骤1.5.4:缓存C中的数据写完之后,将.tmp文件的后缀名改为.dat
步骤1.5.5:清空缓存C;
步骤1.6:释放缓存锁L。
4.根据权利要求3所述的一种基于文件的数据传输方法,其特征在于,缓存定时清理任务包括以下步骤:
步骤2.1:获取缓存C的锁L;
步骤2.2:判断缓存C中是否有数据,如果有,则执行步骤2.2.1,否则,执行步骤2.3;
步骤2.2.1:调用步骤3序列号生成流程,获取当前时间序列号seq;
步骤2.2.2:在目录D中创建文件,并将文件命名为:年月日时分秒+seq.tmp;
步骤2.2.3:将缓存C中的数据写入.tmp文件;
步骤2.2.4:将.tmp文件后缀名重命名为.dat;
步骤2.2.5:清空缓存C;
步骤2.3:释放缓存锁L。
5.根据权利要求4所述的一种基于文件的数据传输方法,其特征在于,磁盘文件处理系统包括以下步骤:
步骤4.1:启动文件扫描任务,该任务为定时循环任务,且由一单独线程执行;
步骤4.2:扫描目录D下所有后缀名为.data.sync的文件,并将所有扫描到的文件句柄存在列表L;
步骤4.3:遍历列表L,读取文件句柄对应的.data.sync文件的数据data;
步骤4.4:将数据data发送到文件数据接收系统,发送操作由单独线程执行,如果发送成功,则执行步骤4.5,否则执行步骤4.6;
步骤4.5:删除文件句柄对应的.data.sync文件;
步骤4.6:将.data.sync文件后缀名重新改为.dar。
6.根据权利要求5所述的一种基于文件的数据传输方法,其特征在于,文件数据接收系统包括以下步骤:
步骤6.1:定义全局数据写磁盘目录Dir;
步骤6.2:启动磁盘数据文件入库处理任务,该任务为定时循环任务,且为单独的线程执行
步骤6.2:接收磁盘数据文件处理系统发送过来的数据data;
步骤6.3:将数据解析之后写入数据库或者其他介质,如果写入成功,则流程结束,否则,执行步骤6.4;
步骤6.4:调用序列号生成流程,获取当前时间唯一序列号seq;
步骤6.5:在目录Dir新建文件名称为年月日时分秒+seq.tmp的文件,将数据data写入.tmp文件;
步骤6.6:数据data写完之后,将.tmp文件后缀名改为.dat。
7.根据权利要求6所述的一种基于文件的数据传输方法,其特征在于,磁盘数据文件入库处理任务流程包括以下步骤:
步骤7.1:扫描目录Dir;
步骤7.2:将Dir目录下所有后缀名为.dat的文件句柄放入L;
步骤7.3:遍历L;
步骤7.4:读取文件句柄对应的.dat文件的数据data,将数据data写入数据库或者其他介质,如果写入成功,则删除文件句柄对应的.dat文件。
8.根据权利要求5所述的一种基于文件的数据传输方法,其特征在于,文件扫描任务流程包括以下步骤:
步骤8.1:扫描磁盘目录D,获得后缀名为.dat的文件列表,并将文件句柄放入列表List
步骤8.2:遍历List
步骤8.3:将List中文件句柄对应文件的后缀名改为.data.sync。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210683228.XA CN115098451B (zh) | 2022-06-14 | 2022-06-14 | 一种基于文件的数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210683228.XA CN115098451B (zh) | 2022-06-14 | 2022-06-14 | 一种基于文件的数据传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115098451A CN115098451A (zh) | 2022-09-23 |
CN115098451B true CN115098451B (zh) | 2024-05-28 |
Family
ID=83290377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210683228.XA Active CN115098451B (zh) | 2022-06-14 | 2022-06-14 | 一种基于文件的数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115098451B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117873403B (zh) * | 2024-03-11 | 2024-06-04 | 四川大学 | office文档IO中tmp文件还原方法及其系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004055644A (ja) * | 2002-07-17 | 2004-02-19 | Oki Electric Ind Co Ltd | 異常判定方法及び異常判定システム |
CN106899443A (zh) * | 2015-12-18 | 2017-06-27 | 北京神州泰岳软件股份有限公司 | 一种Netflow流量数据的采集方法和设备 |
CN111200624A (zh) * | 2018-11-19 | 2020-05-26 | 浙江宇视科技有限公司 | 一种跨网闸数据传输方法及系统 |
CN112306965A (zh) * | 2020-10-02 | 2021-02-02 | 中盈优创资讯科技有限公司 | 数据写入存储方法、装置、设备和计算机可读存储介质 |
CN112711612A (zh) * | 2020-12-31 | 2021-04-27 | 青岛海尔科技有限公司 | 数据处理方法、装置和存储介质及电子装置 |
CN113297216A (zh) * | 2021-05-17 | 2021-08-24 | 中国人民解放军63920部队 | 航天测控数据实时入库方法 |
CN113312386A (zh) * | 2021-05-10 | 2021-08-27 | 四川新网银行股份有限公司 | 一种基于分布式消息的批量入库方法 |
CN114172792A (zh) * | 2021-12-13 | 2022-03-11 | 武汉众邦银行股份有限公司 | 一种保证服务高可用的序号生成方法的实现方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2365556B (en) * | 2000-08-04 | 2005-04-27 | Hewlett Packard Co | Gateway device for remote file server services |
US9779124B2 (en) * | 2012-08-27 | 2017-10-03 | Lg Electronics Inc. | Mobile terminal and control method thereof |
-
2022
- 2022-06-14 CN CN202210683228.XA patent/CN115098451B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004055644A (ja) * | 2002-07-17 | 2004-02-19 | Oki Electric Ind Co Ltd | 異常判定方法及び異常判定システム |
CN106899443A (zh) * | 2015-12-18 | 2017-06-27 | 北京神州泰岳软件股份有限公司 | 一种Netflow流量数据的采集方法和设备 |
CN111200624A (zh) * | 2018-11-19 | 2020-05-26 | 浙江宇视科技有限公司 | 一种跨网闸数据传输方法及系统 |
CN112306965A (zh) * | 2020-10-02 | 2021-02-02 | 中盈优创资讯科技有限公司 | 数据写入存储方法、装置、设备和计算机可读存储介质 |
CN112711612A (zh) * | 2020-12-31 | 2021-04-27 | 青岛海尔科技有限公司 | 数据处理方法、装置和存储介质及电子装置 |
CN113312386A (zh) * | 2021-05-10 | 2021-08-27 | 四川新网银行股份有限公司 | 一种基于分布式消息的批量入库方法 |
CN113297216A (zh) * | 2021-05-17 | 2021-08-24 | 中国人民解放军63920部队 | 航天测控数据实时入库方法 |
CN114172792A (zh) * | 2021-12-13 | 2022-03-11 | 武汉众邦银行股份有限公司 | 一种保证服务高可用的序号生成方法的实现方法及装置 |
Non-Patent Citations (4)
Title |
---|
IT运维监控系统的设计与实现;李杰;中国优秀硕士学位论文全文数据库 (信息科技辑);20200715;第2020卷(第7期);I140-428 * |
RIVA: Robust Integrity Verification Algorithm for High-Speed File Transfers;B. Charyyev等;IEEE Transactions on Parallel and Distributed Systems;20200214;第31卷(第6期);1387-1399 * |
基于UDP的导播系统文件传输模块设计;李岳;科学技术创新;20210515;第2021卷(第14期);1-2 * |
基于磁光虚拟存储系统的文件调度算法;王子炫等;计算机与现代化;20190515;第2019卷(第5期);7-12 * |
Also Published As
Publication number | Publication date |
---|---|
CN115098451A (zh) | 2022-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7680875B1 (en) | Markers for cached objects | |
RU2346323C2 (ru) | Система и способ усовершенствованной синхронизации между сервером и клиентом | |
CN111881116A (zh) | 数据迁移方法、数据迁移系统、计算机系统和存储介质 | |
US10579595B2 (en) | Method and device for calling a distributed file system | |
CN107133234A (zh) | 缓存数据更新的方法、装置及系统 | |
CN104765840A (zh) | 一种大数据分布式存储的方法和装置 | |
CN104486107A (zh) | 一种日志采集装置及方法 | |
CN113377868B (zh) | 一种基于分布式kv数据库的离线存储系统 | |
CN115098451B (zh) | 一种基于文件的数据传输方法 | |
CN111752910A (zh) | 一种异构平台的数据同步方法、系统和相关装置 | |
CN105025106A (zh) | 一种基于分块及元信息的断点续传的方法 | |
US11507277B2 (en) | Key value store using progress verification | |
CN103856516A (zh) | 数据存储、读取方法及数据存储、读取装置 | |
CN113282540A (zh) | 一种云对象存储同步方法、装置、计算机设备及存储介质 | |
CN109947718A (zh) | 一种数据存储方法、存储平台及存储装置 | |
CN109992469B (zh) | 一种合并日志的方法及装置 | |
CN110196835A (zh) | 元数据的处理方法、元数据的处理装置以及电子设备 | |
CN108280215B (zh) | 一种基于Solr的电商索引文件的混合式更新方法 | |
US7213245B2 (en) | Software on demand system | |
CN110866068B (zh) | 一种基于hdfs的公告数据存储方法及其装置 | |
CN111931105A (zh) | 一种kafka消费指定推送时间数据处理方法 | |
EP4237962B1 (en) | Checking state consistency in a log replication configuration | |
CN116302605A (zh) | 一种基于消息引擎的消息传输方法 | |
CN115061630A (zh) | 一种数据迁移方法、装置、设备及介质 | |
CN110737635A (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 |