[发明专利]一种消息持久化方法、服务器和计算机可读存储介质有效
申请号: | 201710960147.9 | 申请日: | 2017-10-16 |
公开(公告)号: | CN107704604B | 公开(公告)日: | 2020-09-18 |
发明(设计)人: | 余波;陈宇珽;茅廷;许再越;李正;牛文宇;李升先;李志斌 | 申请(专利权)人: | 中汇信息技术(上海)有限公司 |
主分类号: | G06F16/172 | 分类号: | G06F16/172;G06F16/13 |
代理公司: | 北京睿派知识产权代理事务所(普通合伙) 11597 | 代理人: | 刘锋 |
地址: | 201203 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 消息 持久 方法 服务器 计算机 可读 存储 介质 | ||
本发明公开了一种消息持久化方法、服务器和计算机可读存储介质。在所述方法中,创建数据文件用于存储需要持久化的消息,创建消息索引文件索引读取数据文件中的消息。通过创建消息索引文件以使得只需要读取数据文件一次便可以得到所需消息。因此,所述方法可以方便快速的从数据文件中读取指定消息序列号的消息。
技术领域
本发明涉及网络通信技术领域,更具体地,涉及一种消息持久化方法、服务器和计算机可读存储介质。
背景技术
随着信息技术的发展,以及分布式系统的广泛应用,在分布式软件系统中,消息中间件在许多行业的关键应用中扮演着至关重要的角色。
消息中间件适用于需要可靠的数据传送的分布式环境。采用消息中间件机制的系统中,不同的对象之间通过传递消息来激活对方的事件,完成相应的操作。消息发布端将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给消息消费端。
消息中间件系统中,需要将消息发布端的消息持久化保存在硬盘等存储中,一般持久化保存到文件或数据库中,以备其他消息消费端可以可靠的接收消息。为了更高效地进行消息交互,目前对消息中间件系统的发送接收的单位时间吞吐率要求很高,对消息持久化存储消息的速率要求很高,对消息恢复时读取消息的速率要求也很高,即需要很高的读写文件或数据库的速率。
在现有的技术中,active MQ是采用树的索引方式,在恢复指定消息序列号区间的消息时,需要遍历索引文件树的各个节点,再通过消息索引去查找数据文件,索引文件树的遍历效率较低,访问速率会比较慢。
Kafka是一种高吞吐量的分布式发布订阅消息系统,在Kafka系统的持久化消息方法中索引文件设置了消息偏移地址,可以通过消息偏移地址比较快的找到消息所在的段文件。段文件中很多个日志记录,通过每个日志记录的消息长度字段去一次次跳转找到需要恢复的消息位置。如果段文件中有n条消息,按照二分法去查找待恢复的消息,需要log2n次,也不能满足目前快速高效的要求。
发明内容
有鉴于此,本发明提供了一种消息持久化方法、服务器和计算机可读存储介质,以实现快速读取指定消息序列号的消息。
第一方面,提供一种消息持久化存储方法,包括:
接收需要持久化的消息后,获取所述消息所属的消息主题;
将所述消息存储在所述消息主题对应的数据文件中,所述消息包括消息序列号;
定时更新消息索引文件,生成所述消息对应的消息索引记录;
其中,所述消息索引文件在预先设定的时间点创建;所述消息索引记录包括数据文件标识和所述消息在所述数据文件中的偏移地址;
所述消息索引记录根据预定规则更新添加至所述消息索引文件以使得能够根据消息序列号索引对应的消息,所述预定规则与所述数据文件中消息的排列规则一致,消息对应的消息索引记录在所述消息索引文件中的序号为消息序列号。
进一步地,所述方法还包括:
在接收到读取给定消息序列号的消息的指令时根据所述消息索引文件索引并读取对应数据文件中对应的消息。
进一步地,根据所述消息索引文件索引并读取对应数据文件中对应的消息包括:
根据所述消息序列号的数值和消息索引记录的字节长度值计算所述消息序列号对应的消息索引记录在消息索引文件中的偏移地址;
根据所计算的偏移地址查询获得所述消息序列号对应的消息索引记录;
根据所获得的消息索引记录在对应的数据文件中查询并读取对应的消息。
进一步地,每个消息主题对应一个所述消息索引文件和至少一个所述数据文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中汇信息技术(上海)有限公司,未经中汇信息技术(上海)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710960147.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:业务评估方法和系统
- 下一篇:电力市场风险管理系统及方法