[发明专利]消息队列的消费方法及装置有效
申请号: | 201611219207.3 | 申请日: | 2016-12-26 |
公开(公告)号: | CN106789741B | 公开(公告)日: | 2020-02-18 |
发明(设计)人: | 邓怡豪 | 申请(专利权)人: | 北京奇虎科技有限公司 |
主分类号: | H04L12/879 | 分类号: | H04L12/879 |
代理公司: | 北京市浩天知识产权代理事务所(普通合伙) 11276 | 代理人: | 宋菲;刘兰兰 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消息 队列 消费 方法 装置 | ||
本发明公开了一种消息队列的消费方法及装置,至少能够解决现有技术中每次重启后均从消息队列的最旧数据偏移位置进行消费所导致的重复消费的技术问题。该方法包括:当消费任务启动时,建立与后台数据库之间的通信连接;通过所述通信连接从所述后台数据库中获取与所述消费任务对应的消息队列的当前偏移信息;若获取成功,则根据获取到的当前偏移信息读取所述消息队列中的消息数据;每当从所述消息队列中读取一条消息数据后,根据该条消息数据对应的偏移地址在所述后台数据库中更新所述消息队列的当前偏移信息。
技术领域
本发明涉及通信技术领域,具体涉及一种消息队列的消费方法及装置。
背景技术
目前,当业务前端生产者产生消息之后,通常是将待处理的消息存储于消息队列的消息分区中,然后交由后端的消费端进行处理。在现有技术中,每当消费端的消费任务启动时,默认从最旧的数据偏移位置(即存储时间最早的数据位置)开始消费。
但是,发明人在实现本发明的过程中发现,现有技术中的上述方式至少存在下述缺陷:由于消费任务每次启动时都从最旧的数据偏移位置进行消费,因此,若该消费任务在消费过程中出现了多次中断并重启的现象,则每次重启后均从消息队列的最旧数据偏移位置进行消费,从而很可能造成数据重复消费的现象发生,既降低了消费效率,又容易导致消费错误。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的消息队列的消费方法及装置。
根据本发明的一个方面,提供了一种消息队列的消费方法,包括:当消费任务启动时,建立与后台数据库之间的通信连接;通过所述通信连接从所述后台数据库中获取与所述消费任务对应的消息队列的当前偏移信息;若获取成功,则根据获取到的当前偏移信息读取所述消息队列中的消息数据;每当从所述消息队列中读取一条消息数据后,根据该条消息数据对应的偏移地址在所述后台数据库中更新所述消息队列的当前偏移信息。
可选地,所述根据该条消息数据对应的偏移地址在所述后台数据库中更新所述消息队列的当前偏移信息的步骤具体包括:创建用于更新偏移信息的事务,该事务包括:用于写入该条消息数据对应的偏移地址的第一操作,以及用于写入该条消息数据的数据内容的第二操作;当该事务中包含的第一操作和第二操作都执行成功时,向所述后台数据库提交该事务。
可选地,当该事务中包含的第一操作和/或第二操作执行失败时,回滚该事务,并重启所述消费任务。
可选地,所述通过所述通信连接从所述后台数据库中获取与所述消费任务对应的消息队列的当前偏移信息的步骤之后,进一步包括:获取所述消息队列的有效数据范围;若所述获取成功,则根据获取到的当前偏移信息逐条读取所述消息队列中的消息数据的步骤具体包括:判断所述获取到的当前偏移信息是否在所述有效数据范围内,若判断结果为是,从所述当前偏移信息对应的位置逐条读取所述消息队列中的消息数据;若判断结果为否,从所述有效数据范围中的最旧数据对应的位置逐条读取所述消息队列中的消息数据。
可选地,进一步包括:若获取失败,则从所述有效数据范围中的最旧数据对应的位置逐条读取所述消息队列中的消息数据。
可选地,所述消息队列包括多个消息分区,则所述消费任务对应的消息队列的当前偏移信息具体为:所述消费任务对应的消息分区的当前偏移信息。
可选地,所述消息队列为分布式消息队列。
依据本发明的另一方面,提供了一种消息队列的消费装置,包括:建立模块,适于当消费任务启动时,建立与后台数据库之间的通信连接;获取模块,适于通过所述通信连接从所述后台数据库中获取与所述消费任务对应的消息队列的当前偏移信息;读取模块,适于在获取成功时,根据获取到的当前偏移信息读取所述消息队列中的消息数据;更新模块,适于每当从所述消息队列中读取一条消息数据后,根据该条消息数据对应的偏移地址在所述后台数据库中更新所述消息队列的当前偏移信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611219207.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:医用洞巾及其热轧SM吸水垫
- 下一篇:一种灭菌网篮存放架