消息队列的消费方法及装置与流程

文档序号:11154681阅读:来源:国知局

技术特征:

1.一种消息对列的消费方法,包括:

当消费任务启动时,获取所述消费任务对应的消息队列的最旧数据偏移;

将所述消息队列的最旧数据偏移与预先存储的该消息队列的当前数据偏移进行比较;

当所述最旧数据偏移小于所述当前数据偏移时,根据所述当前数据偏移读取该消息队列中的消息数据;

每当从所述消息队列中读取一条消息数据后,根据该条消息数据对应的偏移地址更新所述预先存储的该消息队列的当前数据偏移。

2.根据权利要求1所述的方法,其中,当所述最旧数据偏移不小于所述当前数据偏移时,根据所述最旧数据偏移读取该消息队列中的消息数据。

3.根据权利要求1或2所述的方法,其中,所述消息队列具有多个消息分区,且所述预先存储的该消息队列的当前数据偏移包括:该消息队列的各个消息分区的当前数据偏移;

所述获取所述消息队列的最旧数据偏移具体为:分别获取所述消息队列的各个消息分区的最旧数据偏移;

所述将所述消息队列的最旧数据偏移与预先存储的该消息队列的当前数据偏移进行比较的步骤具体为:分别将所述消息队列的各个消息分区的最旧数据偏移与预先存储的该消息队列相应的消息分区的当前数据偏移进行比较;

所述根据该条消息数据对应的偏移地址更新所述存储的该消息队列的当前数据偏移的步骤具体为:根据该条消息数据对应的偏移地址更新该消息队列相应的消息分区的当前数据偏移。

4.根据权利要求1-3任一所述的方法,其中,所述根据该条消息数据对应的偏移地址更新所述预先存储的该消息队列的当前数据偏移的步骤具体包括:

创建用于更新当前数据偏移的事务,该事务包括:用于写入该条消息数据对应的偏移地址的第一操作,以及用于写入该条消息数据的数据内容的第二操作;

当该事务中包含的第一操作和第二操作都执行成功时,向后台数据库提交该事务;当该事务中包含的第一操作和/或第二操作执行失败时,回滚该事务。

5.根据权利要求1-4任一所述的方法,其中,所述获取所述消息队列的最旧数据偏移的步骤具体包括:

与用于维护所述消息队列的队列服务器之间建立通信连接,通过所述通信连接获取所述消息队列的最旧数据偏移。

6.根据权利要求1-5任一所述的方法,其中,所述消息队列为分布式消息队列。

7.一种消息对列的消费装置,包括:

获取模块,适于当消费任务启动时,获取所述消费任务对应的消息队列的最旧数据偏移;

比较模块,适于将所述消息队列的最旧数据偏移与预先存储的该消息队列的当前数据偏移进行比较;

读取模块,适于当所述最旧数据偏移小于所述当前数据偏移时,根据所述当前数据偏移读取该消息队列中的消息数据;

更新模块,适于每当从所述消息队列中读取一条消息数据后,根据该条消息数据对应的偏移地址更新所述预先存储的该消息队列的当前数据偏移。

8.根据权利要求7所述的装置,其中,所述读取模块进一步适于:当所述最旧数据偏移不小于所述当前数据偏移时,根据所述最旧数据偏移读取该消息队列中的消息数据。

9.根据权利要求7或8所述的装置,其中,所述消息队列具有多个消息分区,且所述预先存储的该消息队列的当前数据偏移包括:该消息队列的各个消息分区的当前数据偏移;

所述获取模块具体适于:分别获取所述消息队列的各个消息分区的最旧数据偏移;

所述比较模块具体适于:分别将所述消息队列的各个消息分区的最旧数据偏移与预先存储的该消息队列相应的消息分区的当前数据偏移进行比较;

所述更新模块具体适于:根据该条消息数据对应的偏移地址更新该消息队列相应的消息分区的当前数据偏移。

10.根据权利要求7-9任一所述的装置,其中,所述更新模块具体适于:

创建用于更新当前数据偏移的事务,该事务包括:用于写入该条消息数据对应的偏移地址的第一操作,以及用于写入该条消息数据的数据内容的第二操作;

当该事务中包含的第一操作和第二操作都执行成功时,向后台数据库提交该事务;当该事务中包含的第一操作和/或第二操作执行失败时,回滚该事务。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1