消息中间件消息获取方法、装置和系统制造方法及图纸

技术编号:20451703 阅读:36 留言:0更新日期:2019-02-27 04:35
本发明专利技术公开一种消息中间件消息获取方法、装置和系统。该方法包括:接收消息处理端发送的消息拉取请求,其中消息拉取请求中包括目标消息位置;获取消息队列的处理进度,其中所述处理进度为当前操作之前消息队列的游标位置,处理进度之后的消息从未被获取过;比较目标消息位置和处理进度;若目标消息位置处于处理进度之后,则生成目标消息的消息处理状态信息,并将所述消息处理状态存储在消息处理状态缓存中;将目标消息推送给消息处理端。本发明专利技术通过在处理阶段完成时更新消息的状态,查询消息处理状态缓存中的消息处理状态,将处理状态符合的消息推送给对应消息处理端,避免了消息处理端进行不必要的消息获取。

【技术实现步骤摘要】
消息中间件消息获取方法、装置和系统
本专利技术涉及数据处理
,特别涉及一种消息中间件消息获取方法、装置和系统。
技术介绍
消息中间件是指支持与保障分布式应用程序之间收发消息数据的中间层,消息发送方和处理方之间的连接完全是松耦合的,通信是非阻塞的。常见的产品有RabbitMQ(MQ的全称为MessageQueue,消息队列)、RocketMQ等。消息中间件的基本工作原理为:消息数据存储于服务端的消息队列中,消息处理端从消息队列中拉取消息进行处理。图1为现有消息中间件消息获取方法的示意图。如图1所示,为现有消息中间件消息获取方法中:1、消息处理端批量从服务端拉取消息,服务端存储消息队列的处理进度。2、消息的处理结果和状态都存储于各个消息处理端中。3、倘若在消息处理未完成时消息处理端出现异常错误或者由于业务需要重试处理消息时,向服务端的批量拉取很可能获取到已经处理完成的消息,导致重复处理。4、中间件配套的管理查询系统中很难高效地获取消息实时的处理状态。现有的消息中间件为了保证消息处理的性能,通常通过批量方式从消息队列中顺序获取消息,然后把消息的处理状态存储在处理端。但是当该批消息中有本文档来自技高网...

【技术保护点】
1.一种消息中间件消息获取方法,其特征在于,包括:接收消息处理端发送的消息拉取请求,其中,所述消息拉取请求中包括目标消息位置;获取消息队列的处理进度,其中,所述处理进度为当前操作之前消息队列的游标位置,处理进度之后的消息从未被获取过;比较目标消息位置和处理进度;若目标消息位置处于处理进度之后,则生成目标消息的消息处理状态信息,并将所述消息处理状态信息存储在消息处理状态缓存中;将目标消息推送给消息处理端。

【技术特征摘要】
1.一种消息中间件消息获取方法,其特征在于,包括:接收消息处理端发送的消息拉取请求,其中,所述消息拉取请求中包括目标消息位置;获取消息队列的处理进度,其中,所述处理进度为当前操作之前消息队列的游标位置,处理进度之后的消息从未被获取过;比较目标消息位置和处理进度;若目标消息位置处于处理进度之后,则生成目标消息的消息处理状态信息,并将所述消息处理状态信息存储在消息处理状态缓存中;将目标消息推送给消息处理端。2.根据权利要求1所述的方法,其特征在于,还包括:在目标消息推送成功的情况下,将目标消息的消息处理状态信息修改为已拉取,并将目标消息的消息处理状态更新到消息处理状态信息缓存;和/或,在消息处理端处理成功、返回处理结果的情况下,将消息处理状态缓存中目标消息的消息处理状态信息删除。3.根据权利要求2所述的方法,其特征在于,所述目标消息位置处于签收进度之后,其中,消息队列的签收进度之后的消息为消息队列中尚未收到消息处理端返回处理成功结果的消息。4.根据权利要求1-3中任一项所述的方法,其特征在于,还包括:若目标消息位置处于处理进度位置或处于处理进度之前,则判断消息处理状态缓存中是否存在目标消息的消息处理状态信息;若消息处理状态缓存中不存在目标消息的消息处理状态信息,则将目标消息后的下一个消息作为新目标消息,针对新目标消息执行所述比较目标消息位置和处理进度的步骤。5.根据权利要求4所述的方法,其特征在于,还包括:若消息处理状态缓存中存在目标消息的消息处理状态信息,则根据目标消息的消息处理状态信息对目标消息进行相应操作。6.根据权利要求5所述的方法,其特征在于,所述根据目标消息的消息处理状态信息对目标消息进行相应操作包括:若目标消息的消息处理状态信息为未处理,则执行所述将目标消息推送给消息处理端的步骤;若目标消息的消息处理状态信息为已拉取,则指示消息处理端对所述目标消息进行处理,并对目标消息后的下一个消息执行所述比较目标消息位置和处理进度的步骤。7.一种消息调度处理器,其特征在于,包括:拉取请求接收模块,用于接收消息处理端发送的消息拉取请求,其中,所述消息拉取请求中包括目标消息位置;处理进度获取模块,用于获取消息队列的处理进度,其中,所述处理进度为当前操作之前消息队列的游标位置,处理进度之后的消息从未被获取过;比较模块,用于比较目标消息位置和处理进...

【专利技术属性】
技术研发人员:林棋夏勇郑东建肖庆云段江南黄景平曾康彭亮
申请(专利权)人:中国电信股份有限公司
类型:发明
国别省市:北京,11

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

1