消息处理方法、装置以及设备制造方法及图纸

技术编号:39039317 阅读:11 留言:0更新日期:2023-10-10 11:52
本说明书实施例公开了消息处理方法、装置以及设备。应用于消息消费端的方案包括:判断本地的消息消费能力是否正常;若否,则当从消息中间件获得消息生产端所生产的待消费消息时,将所述待消费消息作为预处理消息存入本地设置的消息预处理区内,以便在消费所述预处理消息之前,能够继续从所述消息中间件获得其他的待消费消息;从所述消息预处理区内取出预处理消息进行消费。理消息进行消费。理消息进行消费。

【技术实现步骤摘要】
消息处理方法、装置以及设备


[0001]本说明书涉及消息中间件
,尤其涉及消息处理方法、装置以及设备。

技术介绍

[0002]在互联网行业,为了处理大量高并发的数据,通常会使用到消息中间件。比如,kafka作为一款分布式、多副本、支持海量数据处理的消息中间件,被很多公司广泛使用,类似地还有其他的消息中间件。
[0003]在实际应用中,消息中间件通常会同时为大量的消息生产端和消息消费端服务,由消息生产端负责生产消息,并将消息发送给消息中间件,消息中间件则负责将消息转发给对应的消息消费端,消息消费端消费消息,当前的一条消息消费完成之后会通知消息中间件,消息中间件再向消息消费端发送下一条待消费消息。消息中间件在处理消息时,会因为消息消费端处理能力下降导致消息积压在消息中间件,一旦有消息积压,消息中间件只好将消息队列中的消息转移存储至磁盘上(简称为:落盘),从而会导致消息中间件的性能下降,也会导致所有使用该消息中间件的消息生产端和消息消费端受到不良影响。
[0004]基于此,需要能够较好地解决消息中间件消息积压问题的方案。

技术实现思路

[0005]本说明书一个或多个实施例提供一种消息处理方法、装置、设备以及存储介质,用以解决如下技术问题:需要能够较好地解决消息中间件消息积压问题的方案。
[0006]为解决上述技术问题,本说明书一个或多个实施例是这样实现的:
[0007]本说明书一个或多个实施例提供的一种消息处理方法,应用于消息消费端,所述方法包括:
[0008]判断本地的消息消费能力是否正常;
[0009]若否,则当从消息中间件获得消息生产端所生产的待消费消息时,将所述待消费消息作为预处理消息存入本地设置的消息预处理区内,以便在消费所述预处理消息之前,能够继续从所述消息中间件获得其他的待消费消息;
[0010]从所述消息预处理区内取出预处理消息进行消费。
[0011]本说明书一个或多个实施例提供的一种消息处理方法,应用于消息中间件,所述方法包括:
[0012]接收消息生产端所生产的待消费消息;
[0013]将所述待消费消息发送给所述消息消费端,以便所述消息消费端在判断其本地的消息消费能力不正常的情况下,能够将所述待消费消息作为预处理消息,存入所述消息消费端本地设置的消息预处理区内;
[0014]在所述消息消费端消费所述预处理消息之前,继续将其他的待消费消息发送给所述消息消费端。
[0015]本说明书一个或多个实施例提供的一种消息处理装置,应用于消息消费端,所述
装置包括:
[0016]消费能力判断模块,判断本地的消息消费能力是否正常;
[0017]消息预处理模块,若否,则当从消息中间件获得消息生产端所生产的待消费消息时,将所述待消费消息作为预处理消息存入本地设置的消息预处理区内,以便在消费所述预处理消息之前,能够继续从所述消息中间件获得其他的待消费消息;
[0018]待消费消息消费模块,从所述消息预处理区内取出预处理消息进行消费。
[0019]本说明书一个或多个实施例提供的一种消息处理装置,应用于消息中间件,所述装置包括:
[0020]待消费消息接收模块,接收消息生产端所生产的待消费消息;
[0021]待消费消息发送模块,将所述待消费消息发送给所述消息消费端,以便所述消息消费端在判断其本地的消息消费能力不正常的情况下,将所述待消费消息作为预处理消息,存入所述消息消费端本地设置的消息预处理区内;
[0022]消息防积压模块,在所述消息消费端消费所述预处理消息之前,继续将其他的待消费消息发送给所述消息消费端。
[0023]本说明书一个或多个实施例提供的一种消息处理设备,应用于消息消费端,所述设备包括:
[0024]至少一个处理器;以及,
[0025]与所述至少一个处理器通信连接的存储器;其中,
[0026]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
[0027]判断本地的消息消费能力是否正常;
[0028]若否,则当从消息中间件获得消息生产端所生产的待消费消息时,将所述待消费消息作为预处理消息存入本地设置的消息预处理区内,以便在消费所述预处理消息之前,能够继续从所述消息中间件获得其他的待消费消息;
[0029]从所述消息预处理区内取出预处理消息进行消费。
[0030]本说明书一个或多个实施例提供的一种消息处理设备,应用于消息中间件,所述设备包括:
[0031]至少一个处理器;以及,
[0032]与所述至少一个处理器通信连接的存储器;其中,
[0033]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
[0034]接收消息生产端所生产的待消费消息;
[0035]将所述待消费消息发送给所述消息消费端,以便所述消息消费端在判断其本地的消息消费能力不正常的情况下,能够将所述待消费消息作为预处理消息,存入所述消息消费端本地设置的消息预处理区内;
[0036]在所述消息消费端消费所述预处理消息之前,继续将其他的待消费消息发送给所述消息消费端。
[0037]本说明书一个或多个实施例提供的一种非易失性计算机存储介质,应用于消息消费端,所述介质存储有计算机可执行指令,所述计算机可执行指令设置为:
[0038]判断本地的消息消费能力是否正常;
[0039]若否,则当从消息中间件获得消息生产端所生产的待消费消息时,将所述待消费消息作为预处理消息存入本地设置的消息预处理区内,以便在消费所述预处理消息之前,能够继续从所述消息中间件获得其他的待消费消息;
[0040]从所述消息预处理区内取出预处理消息进行消费。
[0041]本说明书一个或多个实施例提供的一种非易失性计算机存储介质,应用于消息中间件,所述介质存储有计算机可执行指令,所述计算机可执行指令设置为:
[0042]接收消息生产端所生产的待消费消息;
[0043]将所述待消费消息发送给所述消息消费端,以便所述消息消费端在判断其本地的消息消费能力不正常的情况下,能够将所述待消费消息作为预处理消息,存入所述消息消费端本地设置的消息预处理区内;
[0044]在所述消息消费端消费所述预处理消息之前,继续将其他的待消费消息发送给所述消息消费端。
[0045]本说明书一个或多个实施例采用的上述至少一个技术方案能够达到以下有益效果:能够根据消息消费端本地的消息消费能力是否正常,提前预测到该消息消费端是否将可能导致消息中间件出现消息积压;在消息消费端上利用本地资源设置了消息预处理区,从而在预测到消息中间件将要出现消息积压情况时,及时动用消息消费端的资源来预处理待消费消息,以分散压力,而不是集中在消息中间件内部进行处理;预处理过程包括消息消费端将从消息中间件本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种消息处理方法,应用于消息消费端,所述方法包括:判断本地的消息消费能力是否正常;若否,则当从消息中间件获得消息生产端所生产的待消费消息时,将所述待消费消息作为预处理消息存入本地设置的消息预处理区内,以便在消费所述预处理消息之前,能够继续从所述消息中间件获得其他的待消费消息;从所述消息预处理区内取出预处理消息进行消费。2.如权利要求1所述的方法,所述判断本地的消息消费能力是否正常,具体包括:判断本地的消息消费耗时是否正常。3.如权利要求1所述的方法,所述消息预处理区包括内存子区和磁盘子区;所述将所述待消费消息作为预处理消息存入本地设置的消息预处理区内,具体包括:判断所述内存子区是否足够使用;若是,则将所述待消费消息作为预处理消息存入所述内存子区内;否则,将所述预处理消息存入所述磁盘子区内。4.如权利要求3所述的方法,所述将所述预处理消息存入所述磁盘子区内之后,所述方法还包括:在所述内存子区足够使用之后,通过空闲的异步线程,将所述磁盘子区内的所述预处理消息,转移存入所述内存子区内。5.如权利要求3所述的方法,所述从所述消息预处理区内取出预处理消息进行消费,具体包括:判断所述内存子区内是否有预处理消息;若是,则从所述内存子区内取出所述预处理消息进行消费;否则,从所述消息中间件获取待消费消息进行消费。6.如权利要求3~5任一项所述的方法,所述内存子区为内存中的消息队列;和/或,所述磁盘子区为磁盘中的消息队列。7.如权利要求1所述的方法,所述将所述待消费消息作为预处理消息存入本地设置的消息预处理区内之后,所述方法还包括:在消费所述预处理消息之前,从所述消息中间件拉取其他的待消费消息,作为预处理消息存入所述消息预处理区内。8.如权利要求1所述的方法,所述将所述待消费消息作为预处理消息存入本地设置的消息预处理区内之后,所述方法还包括:在所述消息预处理区足够使用的情况下,从所述消息中间件获得对应于所述消息消费端的其他的待消费消息,作为预处理消息存入所述消息预处理区内。9.一种消息处理方法,应用于消息中间件,所述方法包括:接收消息生产端所生产的待消费消息;将所述待消费消息发送给所述消息消费端,以便所述消息消费端在判断其本地的消息消费能力不正常的情况下,能够将所述待消费消息作为预处理消息,存入所述消息消费端本地设置的消息预处理区内;在所述消息消费端消费所述预处理消息之前,继续将其他的待消费消息发送给所述消息消费端。
10.如权利要求9所述的方法,所述接收消息生产端所生产的待消费消息之后,所述方法还包括:将所述待消费消息存入所述消息中间件的内存中;若所述内存中出现待消费消息积压或将要积压的情况,则将至少部分所述待消费消息向设置有消息预处理区的消息消费端发送,而不将所述待消费消息转移存入所述消息中间件的磁盘中。11.一种消息处理装置,应用于消息消费端,所述装置包括:消费能力判断模块,判断本地的消息消费能力是否正常;消息预处理模块,若否,则当从消息中间件获得消息生产端所生产的待消费消息时,将所述待消费消息作为预处理消息存入本地设置的消息预处理区内,以便在消费所述预处理消息之前,能够继续从所述消息中间件获得其他的待消费消息;待消费消息消费模块,从所述消息预处理区内取出预处理消息进行消费。12.如权利要求11所述的装置,所述消费能力判断模块,判断本地的消息消费耗时是否正常。13.如权利要求11所述的装置,所述消息预处理区包括内存子区和磁盘子区;所述消息预处理模...

【专利技术属性】
技术研发人员:刘禹轩
申请(专利权)人:蚂蚁区块链科技上海有限公司
类型:发明
国别省市:

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

1