一种消息处理方法、装置及电子设备制造方法及图纸

技术编号:28672733 阅读:14 留言:0更新日期:2021-06-02 02:48
本发明专利技术实施例提供了一种消息处理方法、装置及电子设备,其中,该消息处理方法包括:获取消息队列中消息的队列信息,其中,所述队列信息至少包括:任一消息在所述消息队列中的偏移量;当对任一消息处理失败时,向所述消息队列发送所述消息队列中所有被连续处理成功的消息中的最大偏移量,以使所述消息队列将所述最大偏移量的下一偏移量确定为当前处理失败的消息的偏移量;接收所述消息队列发送的消息,以进行消息处理,其中,该消息是所述消息队列中所述最大偏移量的下一偏移量对应的消息,以完成对所述当前处理失败的消息的消费处理。保证了消息队列中的消息能够被成功处理。

【技术实现步骤摘要】
一种消息处理方法、装置及电子设备
本专利技术涉及信息处理
,特别是涉及一种消息处理方法、装置及电子设备、计算机可读存储介质。
技术介绍
在互联网
,通常会产生很多消息,而产生的消息有些是要被处理的,例如,在云计算场景中,消息生产方需要将云计算产生的消息传输给消息处理方进行处理。为了对消息生产方和消息处理方进行解耦合,或者改善云计算系统的性能,往往会在消息生产方和消息处理方之间增加消息队列,这样,消息生产方可以将消息存储到消息队列中,然后消息处理方可以从该消息队列中读取消息进行处理。目前常用的消息队列包括:Kafka、RabbitMQ或RocketMQ等。申请人在实现本专利技术的过程中发现,现有技术中的消息队列中,对未被成功消费处理的消息,是不做标记的,更不会记录该未被成功消费处理的消息的位置,使得工作线程无法重新对该未被成功处理的消息进行处理,导致该消息被工作线程遗漏而不进行消费。
技术实现思路
本专利技术实施例的目的在于提供一种消息处理方法、装置及电子设备,以实现对工作线程成功处理的消息的偏移量进行记录,避免未被成功处理的消息被遗漏掉,保证消息队列中的消息都能够被成功处理。具体技术方案如下:第一方面,本专利技术实施例提供了一种消息处理方法,该方法包括:获取消息队列中消息的队列信息,其中,所述队列信息至少包括:任一消息在所述消息队列中的偏移量;当对任一消息处理失败时,向所述消息队列发送所述消息队列中所有被连续处理成功的消息中的最大偏移量,以使所述消息队列将所述最大偏移量的下一偏移量确定为当前处理失败的消息的偏移量;接收所述消息队列发送的消息,以进行消息处理,其中,该消息是所述消息队列中所述最大偏移量的下一偏移量对应的消息,以完成对所述当前处理失败的消息的消费处理。可选的,当对任一消息处理成功时,对该消息的偏移量进行记录,以得到所述消息队列中所有被连续处理处理成功的消息的最大偏移量。可选的,所述当对任一消息处理失败时,向所述消息队列发送所述消息队列中所有被连续处理成功的消息中的最大偏移量,包括:当对任一消息处理失败时,启动预设的定时周期;按照所述定时周期,将所记录的所有被连续处理成功的消息中的最大偏移量发送至所述消息队列。可选的,所述消息队列为多个,所述队列信息还包括:所述消息队列的标识信息,所述标识信息用于区分不同的消息队列,每个消息队列对应一组数据结构,所述数据结构用于记录所述队列信息;当对任一消息处理成功时,对该消息的偏移量进行记录,包括:在对任一消息处理成功时,根据所述消息队列的标识信息确定该被处理成功的消息所处的消息队列;将当前被处理成功的消息的偏移量记录到与该消息所处的消息队列对应数据结构的队列信息中。可选的,每组所述数据结构至少包括当前数据结构和历史数据结构;所述当前数据结构用于存储成功处理当前消息时的偏移量,所述历史数据结构用于存储所述当前消息之前成功被处理的消息的偏移量;所述在将当前被处理成功的消息的偏移量记录到与该消息所处的消息队列对应数据结构的队列信息中,包括:在对所述任一消息处理成功时,将该消息的偏移量记录到与该消息所处的消息队列对应的当前数据结构中,以更新所述当前数据结构中成功处理的当前消息的偏移量;以及,根据该消息的偏移量所述历史数据结构中当前消息之前成功被处理的消息的偏移量。可选的,所述当对任一消息处理失败时,向所述消息队列发送所述消息队列中所有被连续处理成功的消息中的最大偏移量,包括:当对任一消息处理失败时,将所述当前数据结构和所述历史数据结构中的所有消息的连续偏移量中的最大偏移量发送至该消息所处的消息队列。可选的,所述当对任一消息处理成功时,对该消息的偏移量进行记录,包括:在对任一消息处理成功时,获取该消息的在所述消息队列中的偏移量;对所述消息队列中被连续处理成功消息的偏移量排序处理,得到该消息的偏移量的排序结果;按照所述排序结果中的顺序记录该消息的偏移量。第二方面,本专利技术实施例还提供了一种消息处理方法,该方法包括:向工作线程发送消息的队列信息,其中,所述队列信息至少包括:任一消息在消息队列中的偏移量,以使所述工作线程通过偏移量获取消息,以对消息进行消费处理;当对任一消息处理失败时,接收工作线程发送的所有被连续处理成功的消息中的最大偏移量;将所述最大偏移量的下一偏移量确定为该处理失败的消息的偏移量;向所述工作线程发送所述最大偏移量的下一偏移量对应的消息,以使所述工作线程对该处理失败的消息的消费处理。可选的,所述消息队列为多个,所述队列信息还包括:所述消息队列的标识信息,所述标识信息用于区分不同的消息队列,每个消息队列对应一组数据结构,所述数据结构用于记录所述队列信息。可选的,每组所述数据结构至少包括当前数据结构和历史数据结构;所述当前数据结构用于存储成功处理当前消息时的偏移量,所述历史数据结构用于存储所述当前消息之前成功被处理的消息的偏移量。第三方面,本专利技术实施例还提供了一种消息处理装置,该装置包括:队列信息获取模块,用于获取消息队列中消息的队列信息,其中,所述队列信息至少包括:任一消息在所述消息队列中的偏移量;偏移量发送模块,用于当对任一消息处理失败时,向所述消息队列发送所述消息队列中所有被连续处理成功的消息中的最大偏移量,以使所述消息队列将所述最大偏移量的下一偏移量确定为当前处理失败的消息的偏移量;消息处理模块,用于接收所述消息队列发送的消息,以进行消息处理,其中,该消息是所述消息队列中所述最大偏移量的下一偏移量对应的消息,以完成对所述当前处理失败的消息的消费处理。第四方面,本专利技术实施例还提供了一种消息处理装置,该装置包括:队列信息发送模块,用于向工作线程发送消息的队列信息,其中,所述队列信息至少包括:任一消息在消息队列中的偏移量,以使所述工作线程通过偏移量获取消息,以对消息进行消费处理偏移量接收模块,用于当对任一消息处理失败时,接收工作线程发送的所有被连续处理成功的消息中的最大偏移量;待传输消息确定模块,用于将所述最大偏移量的下一偏移量确定为该处理失败的消息的偏移量;消息发送模块,用于向所述工作线程发送所述最大偏移量的下一偏移量对应的消息,以使所述工作线程对该处理失败的消息的消费处理。第五方面,本专利技术实施例还提供了一种电子设备,包括处理器和计算机可读存储介质,计算机可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使:实现上述第一方面提供的一种消息处理方法的步骤或者第二方面提供的一种消息处理方法的步骤。第六方面,本专利技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,实现上述第一方面提供的一种消息处理方法的步骤和/或者第二方面提供的一种消息处理方法的步骤。第七方面,本专利技术实施例还提供了一种本文档来自技高网...

【技术保护点】
1.一种消息处理方法,其特征在于,所述方法包括:/n获取消息队列中消息的队列信息,其中,所述队列信息至少包括:任一消息在所述消息队列中的偏移量;/n当对任一消息处理失败时,向所述消息队列发送所述消息队列中所有被连续处理成功的消息中的最大偏移量,以使所述消息队列将所述最大偏移量的下一偏移量确定为当前处理失败的消息的偏移量;/n接收所述消息队列发送的消息,以进行消息处理,其中,该消息是所述消息队列中所述最大偏移量的下一偏移量对应的消息,以完成对所述当前处理失败的消息的消费处理。/n

【技术特征摘要】
1.一种消息处理方法,其特征在于,所述方法包括:
获取消息队列中消息的队列信息,其中,所述队列信息至少包括:任一消息在所述消息队列中的偏移量;
当对任一消息处理失败时,向所述消息队列发送所述消息队列中所有被连续处理成功的消息中的最大偏移量,以使所述消息队列将所述最大偏移量的下一偏移量确定为当前处理失败的消息的偏移量;
接收所述消息队列发送的消息,以进行消息处理,其中,该消息是所述消息队列中所述最大偏移量的下一偏移量对应的消息,以完成对所述当前处理失败的消息的消费处理。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当对任一消息处理成功时,对该消息的偏移量进行记录,以得到所述消息队列中所有被连续处理处理成功的消息的最大偏移量。


3.根据权利要求1或2所述的方法,其特征在于,所述当对任一消息处理失败时,向所述消息队列发送所述消息队列中所有被连续处理成功的消息中的最大偏移量,包括:
当对任一消息处理失败时,启动预设的定时周期;
按照所述定时周期,将所记录的所有被连续处理成功的消息中的最大偏移量发送至所述消息队列。


4.根据权利要求2所述的方法,其特征在于,所述消息队列为多个,所述队列信息还包括:所述消息队列的标识信息,所述标识信息用于区分不同的消息队列,每个消息队列对应一组数据结构,所述数据结构用于记录所述队列信息;
当对任一消息处理成功时,对该消息的偏移量进行记录,包括:
在对任一消息处理成功时,根据所述消息队列的标识信息确定该被处理成功的消息所处的消息队列;
将当前被处理成功的消息的偏移量记录到与该消息所处的消息队列对应数据结构的队列信息中。


5.根据权利要求4所述的方法,其特征在于,每组所述数据结构至少包括当前数据结构和历史数据结构;所述当前数据结构用于存储成功处理当前消息时的偏移量,所述历史数据结构用于存储所述当前消息之前成功被处理的消息的偏移量;
所述在将当前被处理成功的消息的偏移量记录到与该消息所处的消息队列对应数据结构的队列信息中,包括:
在对所述任一消息处理成功时,将该消息的偏移量记录到与该消息所处的消息队列对应的当前数据结构中,以更新所述当前数据结构中成功处理的当前消息的偏移量;
以及,根据该消息的偏移量所述历史数据结构中当前消息之前成功被处理的消息的偏移量。


6.根据权利要求5所述的方法,其特征在于,所述当对任一消息处理失败时,向所述消息队列发送所述消息队列中所有被连续处理成功的消息中的最大偏移量,包括:
当对任一消息处理失败时,将所述当前数据结构和所述历史数据结构中的所有消息的连续偏移量中的最大偏移量发送至该消息所处的消息队列。


7.根据权利要求2所述的方法,其特征在于,所述当对任一消息处理成功时,对该消息的偏移量进行记录,包括:
在对任一消息处理成功时,获取该消息的在所述消息队列中的偏移量;
对所述消息队列中被连续处理成功消息的偏移量排序处理,得到该消息的偏移量的排序结...

【专利技术属性】
技术研发人员:王雅娴
申请(专利权)人:北京金山云网络技术有限公司北京金山云科技有限公司
类型:发明
国别省市:北京;11

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

1