应用于可靠传输的数据存储方法及相关装置制造方法及图纸

技术编号:35523318 阅读:22 留言:0更新日期:2022-11-09 14:43
本申请实施例提供一种应用于可靠传输的数据存储方法及相关装置,所述方法包括:接收用于可靠传输的待传输消息;确定所述待传输消息的文件头;对所述待传输消息进行分段处理,以得到K个文件片段,所述K个文件片段的长度相同,以及确定所述K个文件片段的记录结束标识;根据所述待传输消息的文件头、K个文件片段和所述K个文件片段的记录结束标识按照预设的文件构建方法进行构建,以得到目标文件;对所述目标文件进行存储或读取时,通过对每个待传输消息最多进行一次存储或读取,减少了文件读写的次数,且为顺序读写,方便实现批量读写,提升了文件存储或读取的效率。了文件存储或读取的效率。了文件存储或读取的效率。

【技术实现步骤摘要】
应用于可靠传输的数据存储方法及相关装置


[0001]本申请涉及数据处理
,具体涉及一种应用于可靠传输的数据存储方法及相关装置。

技术介绍

[0002]在使用网络通信进行消息的可靠传输时,需要将消息保存在文件中,以防止程序出现故障后,数据丢失的问题。目前对于长度变化很大的通用消息进行存储时,由于无法事先确定所传输消息的业务类型及长度,该消息的长度变化很大,从几个字节到几兆都有可能,我们无法将该消息字节存储在数据库的单条记录中,必须找到一种可以快速存储可变长度的文件存储格式。
[0003]目前一般采用多个文件存储的方式来解决该问题。比如,可以使用一个定长的索引文件,加上一个数据文件来实现。在索引文件中,每条记录为定长,该定长记录中有一项指向数据文件所在的偏移。在定位数据时,先在索引文件中定位记录编号,然后再根据索引文件中的指向数据文件的偏移量,再到数据文件中去读取数据,以及其它属性信息。例如,kafka等消息中间件就是采用这种模式。
[0004]以上方式能解决可靠传输的文件存储问题,但是对任意一条记录的读写,需要在索引文件和数据文件中分别读写一次,由于涉及到两个文件读写,而且对每个消息需要分别读写,磁盘磁头至少挪动两次,也不是顺序读写,根据计算机存储的常识,随机读写文件时,磁盘效率非常低下。

技术实现思路

[0005]本申请实施例提供一种应用于可靠传输的数据存储方法及相关装置,通过对每个待传输消息最多进行一次存储或读取,能够减少文件读写时的次数,且为顺序读写,提升了文件存储或读取的效率。本申请实施例中,记录的行号就是用于可靠传输的记录标识,使用起来简洁方便。
[0006]本申请实施例的第一方面提供了应用于可靠传输的数据存储方法,所述方法包括:
[0007]接收用于可靠传输的待传输消息;
[0008]确定所述待传输消息的文件头;
[0009]对所述待传输消息进行分段处理,以得到K个文件片段,所述K个文件片段的长度相同,以及确定所述K个文件片段的记录结束标识;
[0010]根据所述待传输消息的文件头、K个文件片段和所述K个文件片段的记录结束标识按照预设的文件构建方法进行构建,以得到目标文件;
[0011]对所述目标文件进行存储。
[0012]在一个可能的实现方式中,所述根据所述待传输消息的文件头、K个文件片段和所述K个文件片段的记录结束标识按照预设的文件构建方法进行构建,以得到目标文件,包
括:
[0013]获取与所述待传输消息对应的文件构建模板;
[0014]根据所述文件构建模板对待传输消息的文件头、K个文件片段和所述K个文件片段的记录结束标识进行构建,以得到所述目标文件。
[0015]在一个可能的实现方式中,所述根据所述待传输消息的文件头、K个文件片段和所述K个文件片段的记录结束标识按照预设的文件构建方法进行构建,以得到目标文件,包括:
[0016]在文件中写入所述文件头,以得到第一中间文件;
[0017]在所述第一中间文件中,逐行顺序写入所述第一个待传输消息的K个文件片段的记录结束标识、所述K个文件片段的有效长度、所述K个文件片段的内容,以得到所述第二中间文件,若消息是最后一个消息,则确定第二中间文件为目标文件;
[0018]继续重复以上过程,顺序写入后续消息,得到后续中间文件,若消息是最后一个消息,则确定后续中间文件为目标文件。
[0019]在一个可能的实现方式中,所述对所述待传输消息进行分段处理,以得到K个文件片段,包括:
[0020]获取预设的单行记录长度;
[0021]判断所述待传输消息的数据量是否能被所述预设的单行记录长度对应的数据量整除,若能整除,则将所述待传输消息进行均分处理,以得到所述K个文件片段;
[0022]若不能整除,则将所述待传输消息按照所述预设的单行记录长度进行均分处理,以得到K

1个文件片段,以及将第K个文件片段中非待传输消息的数据位进行固定填充,以得到填充后的第K个文件片段。
[0023]在一个可能的实现方式中,所述方法还包括:
[0024]读取待传输消息集;
[0025]所述读取所述待传输消息集,包括:
[0026]获取所述待传输消息的文件头,所述文件头中包括有文件头长度和单行记录长度的信息。记录的行号就是用于可靠传输的记录标识;
[0027]根据所述文件头中的单行记录长度信息,一次性读取M行的数据到内存中,在内存中根据记录结束标志拆解恢复得到K个待传输消息包,若本次读取的数据最后一行的记录结束标志为未结束,则将本次尾部数据与下一次读取内存的头部数据行进行合并,以得到一个完整的待传输消息包;
[0028]重复以上过程,得到M个待传输消息包,M为大于或等于K的正整数。
[0029]本申请实施例的第二方面提供了一种应用于可靠传输的数据存储装置,所述装置包括:
[0030]接收单元,用于接收用于可靠传输的待传输消息;
[0031]确定单元,用于确定所述待传输消息的文件头;
[0032]处理单元,用于对所述待传输消息进行分段处理,以得到K个文件片段,所述K个文件片段的长度相同,以及确定所述K个文件片段的记录结束标识;
[0033]构建单元,用于根据所述待传输消息的文件头、K个文件片段和所述K个文件片段的记录结束标识按照预设的文件构建方法进行构建,以得到目标文件;
[0034]存储单元,用于对所述目标文件进行存储。
[0035]在一个可能的实现方式中,所述构建单元用于:
[0036]获取与所述待传输消息对应的文件构建模板;
[0037]根据所述文件构建模板对待传输消息的文件头、K个文件片段和所述K个文件片段的记录结束标识进行构建,以得到所述目标文件。
[0038]在一个可能的实现方式中,所述构建单元用于:
[0039]在文件中写入所述文件头,以得到第一中间文件;
[0040]在所述第一中间文件中,逐行顺序写入所述第一个待传输消息的K个文件片段的记录结束标识、所述K个文件片段的有效长度、所述K个文件片段的内容,以得到所述第二中间文件。如果是最后一个消息,即为目标文件。
[0041]继续重复以上过程,顺序写入后续消息,得到后续中间文件。如果是最后一个消息,即为目标文件。
[0042]在一个可能的实现方式中,在所述对所述待传输消息进行分段处理,以得到K个文件片段方面,所述处理单元用于:
[0043]获取预设的单行记录长度;
[0044]判断所述待传输消息的数据量是否能被所述预设的单行记录长度对应的数据量整除,若能整除,则将所述待传输消息进行均分处理,以得到所述K个文件片段;
[0045]若不能整除,则将所述待传输消息按照所述预设的单行记录长度进行均分处理,以得到K

1个文件片段,以及将第K个文件片段中非待传输消息的数据位进行固定填充,以本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用于可靠传输的数据存储方法,其特征在于,所述方法包括:接收用于可靠传输的待传输消息;确定所述待传输消息的文件头;对所述待传输消息进行分段处理,以得到K个文件片段,所述K个文件片段的长度相同,以及确定所述K个文件片段的记录结束标识;根据所述待传输消息的文件头、K个文件片段和所述K个文件片段的记录结束标识按照预设的文件构建方法进行构建,以得到目标文件;对所述目标文件进行存储。2.根据权利要求1所述的方法,其特征在于,所述根据所述待传输消息的文件头、K个文件片段和所述K个文件片段的记录结束标识按照预设的文件构建方法进行构建,以得到目标文件,包括:获取与所述待传输消息对应的文件构建模板;根据所述文件构建模板对待传输消息的文件头、K个文件片段和所述K个文件片段的记录结束标识进行构建,以得到所述目标文件。3.根据权利要求1所述的方法,其特征在于,所述根据所述待传输消息的文件头、K个文件片段和所述K个文件片段的记录结束标识按照预设的文件构建方法进行构建,以得到目标文件,包括:在文件中写入所述文件头,以得到第一中间文件;在所述第一中间文件中,逐行顺序写入所述第一个待传输消息的K个文件片段的记录结束标识、所述K个文件片段的有效长度、所述K个文件片段的内容,以得到所述第二中间文件,若消息是最后一个消息,则确定第二中间文件为目标文件;继续重复以上过程,顺序写入后续消息,得到后续中间文件,若消息是最后一个消息,则确定后续中间文件为目标文件。4.根据权利要求1

3任一项所述的方法,其特征在于,所述对所述待传输消息进行分段处理,以得到K个文件片段,包括:获取预设的单行记录长度;判断所述待传输消息的数据量是否能被所述预设的单行记录长度对应的数据量整除,若能整除,则将所述待传输消息进行均分处理,以得到所述K个文件片段;若不能整除,则将所述待传输消息按照所述预设的单行记录长度进行均分处理,以得到K

1个文件片段,以及将第K个文件片段中非待传输消息的数据位进行固定填充,以得到填充后的第K个文件片段。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:读取待传输消息集;所述读取所述待传输消息集,包括:获取所述待传输消息的文件头,所述文件头中包括有文件头长度和单行记录长度的...

【专利技术属性】
技术研发人员:蒋春风肖成虎
申请(专利权)人:深圳证券通信有限公司
类型:发明
国别省市:

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

1