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