Kafka低阶消费程序消息积压监控方法及相关设备技术

技术编号:27658129 阅读:17 留言:0更新日期:2021-03-12 14:22
本说明书实施例提供了Kafka低阶消费程序消息积压监控方法及相关设备,用于在Kafka低阶消费程序中对消息积压的监控告警和处理消息过程中的判重。首先,在Kafka消费程序中根据预设的时间间隔分批获取消息,一个批次的消息消费完毕后记录这一批次消息的最大偏移量,并通过公共接口获取最新偏移量,由最新偏移量减去最大偏移量,得到的即为该批次消息消费完毕后消息的积压量;设置积压量阈值,当计算得出的积压量超出阈值时,消费程序向技术人员发出告警邮件。消息处理过程中,计算并保存处理完毕消息的哈希值;处理消息时,首先计算待处理消息的哈希值并与保存的哈希值对比,两者不一致时才会继续处理。

【技术实现步骤摘要】
Kafka低阶消费程序消息积压监控方法及相关设备
本说明书一个或多个实施例涉及Kafka消费程序领域,尤其涉及Kafka低阶消费程序中Kafka低阶消费程序消息积压监控。
技术介绍
低阶的Kafka消费程序由程序本身维护消费记录,通过获取消费信息记录和消息最大记录可以得知当前的消息积压量,通过最大消息偏移量减去消费信息记录的偏移量,得到的差值就是消费程序当前的消费积压量,用于监控程序运行状态,如何合理记录消费信息成为程序设计和监控消息积压的考虑因素。目前有些Kafka低阶消费程序每处理一条消息就进行一次消费记录,消费记录过于频繁,当消息量每秒上千或上万时,对程序和记录设备都会造成非常大的压力。
技术实现思路
有鉴于此,本说明书一个或多个实施例的目的在于提出一种Kafka低阶消费程序消息积压监控方法及相关设备,以解决消费记录过于频繁,给程序和记录设备压力过大的问题。本说明书一个或多个实施例提供了一种Kafka低阶消费程序消息积压监控方法,该方法包括如下:由Kafka低阶消费程序分批获取Kafka消息,并通过Kafka公共接口从Kafka集群获取最大消息偏移量;对于所获取的每一批Kafka消息,由Kafka低阶消费程序执行下列操作:在该批Kafka消息被消费完毕后,记录该批Kafka消息的最大偏移量;将所获取的最大消息偏移量与所记录的最大偏移量之差作为所述Kafka低阶消费程序的实时消息积压量;当所述实时消息积压量超过预设的积压量阈值时,发出告警信息。<br>本说明书一个或多个实施例提供了一种Kafka低阶消费程序消息积压监控方法还包括记录处理完毕的消息的哈希值以进行判重:当所获取的每一批Kafka消息中的消息被处理时,通过哈希算法计算得到该消息的哈希值,并将该哈希值作为该消息的处理标识予以记录;当要处理一个目标Kafka消息时,通过哈希算法计算得到该目标Kafka消息的目标哈希值;将该目标哈希值与各个已记录的所述处理标识进行比较,若所述比较的结果指示所述目标哈希值与至少一个已记录的所述处理标识一致,则确定不处理所述目标Kafka消息。基于同一专利技术构思,本说明书一个或多个实施例还提供了一种Kafka低阶消费程序消息积压监控装置,根据其实现的功能,可以分为以下模块:获取模块,分批获取Kafka消息,并记录每一批消息的最大偏移量;监控模块,对于所述获取模块获取的每一批Kafka消息,执行下列操作:在该批Kafka消息被消费完毕后,记录该批Kafka消息的最大偏移量;将所述获取模块获取的最大消息偏移量与所记录的最大偏移量之差作为所述Kafka低阶消费程序的实时消息积压量;当所述实时消息积压量超过预设的积压量阈值时,发出告警信息;标识模块,当所述获取模块获取的每一批Kafka消息中的消息被处理时,通过哈希算法计算得到该消息的哈希值,并将该哈希值作为该消息的处理标识予以记录;判重模块,当要处理一个目标Kafka消息时,通过哈希算法计算得到该目标Kafka消息的目标哈希值,并将该目标哈希值与所述标识模块已记录的各个所述处理标识进行比较,若所述比较的结果指示所述目标哈希值与至少一个已记录的所述处理标识一致,则确定不处理所述目标Kafka消息。基于同一专利技术构思,本说明书一个或多个实施例还提出一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述的Kafka低阶消费程序消息积压监控方法。基于同一专利技术构思,本说明书一个或多个实施例还提供了一种存储介质,为一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述Kafka低阶消费程序消息积压监控方法。从上面所述可以看出,本说明书一个或多个实施例提供的一种Kafka低阶消费程序消息积压监控方法及相关设备,在每一批次几十万条消息中只需进行一次消费记录,大大减轻了Kafka消费程序和记录源的压力。附图说明为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书一个或多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本说明书一个或多个实施例实现Kafka低阶消费程序消息积压监控方法的流程图;图2为本说明书一个或多个实施例中Kafka低阶消费程序处理消息时判重的流程图;图3为本说明书一个或多个实施例中Kafka低阶消费程序消息积压监控装置的示意图;图4为本说明书一个或多个实施例中实现Kafka低阶消费程序消息积压监控的电子设备示意图。具体实施方式为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。需要说明的是,除非另外定义,本说明书一个或多个实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。如
技术介绍
所述,在现有的Kafka低阶消费程序中,每处理一条消息就会进行一次消费记录,在消息量每秒达到成千或上万时,对Kafka消费程序本身和记录消费记录的消息库都会造成很大压力。为此,本说明书一个或多个实施例提出了一种Kafka低阶消费程序监控方法,通过设置时间间隔分批获取Kafka消息;当一批Kafka消息消费完毕后,记录每一批次消息中最后一个消息的偏移量即为每一批次消息的最大偏移量;使用通过Kafka公共接口获取的消息的最新偏移量减去每一批次消息的最大偏移量,得到的差值即为每一批次消息消费完毕后的积压量;同时由技术人员设置积压量阈值,当积压量超出积压量阈值时,由Kafka消费程序主动向技术人员发送告警邮件。同时,由于需要处理的消息在每一批次的消息中的数量是不确定的,需要根据业务需求预设筛选条件进行筛选,并记录每一个处理完毕的消息的哈希值;消息处理过程中,计算待处理消息的哈希值与处理完毕的消息的哈希值对比,两者不一致即证明待处理消息还没有被处理,可以继续进行处理,否则,就跳过该待处理消息进行下一个待处理消息的验证和处理。这种方法大大降低程序和记录源的压力,也满足了对Kafka消费程序的监控需求。此外,对于正在处理消息的哈希值与已处理过的消息的哈希值做比对,保证了每条需要处理的消息有且仅有一次被处理。参考图1,本说明书一个或多个实施例表达的技术方案的步骤如下所述。步骤S101、由Kafka程序分批获取Kafka消息,并通过Kafka公共接口从Kafka集群获取最大消息偏移量。本步骤中,分批获取Kafka消息的时间间隔可设置为1-10秒,使每一批次的消息数量控制本文档来自技高网
...

【技术保护点】
1.一种Kafka低阶消费程序消息积压监控方法,包括:/n由Kafka低阶消费程序分批获取Kafka消息,并通过Kafka公共接口从Kafka集群获取最大消息偏移量;/n对于所获取的每一批Kafka消息,由Kafka低阶消费程序执行下列操作:在该批Kafka消息被消费完毕后,记录该批Kafka消息的最大偏移量;/n将所获取的最大消息偏移量与所记录的最大偏移量之差作为所述Kafka低阶消费程序的实时消息积压量;/n当所述实时消息积压量超过预设的积压量阈值时,发出告警信息。/n

【技术特征摘要】
1.一种Kafka低阶消费程序消息积压监控方法,包括:
由Kafka低阶消费程序分批获取Kafka消息,并通过Kafka公共接口从Kafka集群获取最大消息偏移量;
对于所获取的每一批Kafka消息,由Kafka低阶消费程序执行下列操作:在该批Kafka消息被消费完毕后,记录该批Kafka消息的最大偏移量;
将所获取的最大消息偏移量与所记录的最大偏移量之差作为所述Kafka低阶消费程序的实时消息积压量;
当所述实时消息积压量超过预设的积压量阈值时,发出告警信息。


2.根据权利要求1所述的方法,其中,
当所获取的每一批Kafka消息中的消息被处理时,通过哈希算法计算得到该消息的哈希值,并将该哈希值作为该消息的处理标识予以记录;
当要处理一个目标Kafka消息时,通过哈希算法计算得到该目标Kafka消息的目标哈希值;
将该目标哈希值与各个已记录的所述处理标识进行比较,若所述比较的结果指示所述目标哈希值与至少一个已记录的所述处理标识一致,则确定不处理所述目标Kafka消息。


3.根据权利要求1所述的方法,其中,分批获取Kafka消息包括:以1至10秒的时间间隔分批获取所述Kafka消息。


4.根据权利要求1至3中任一项所述的方法,其中,该批Kafka消息的最大偏移量为该批Kafka消息中最后一个消息的偏移量。


5.根据权利要求1至3中任一项所述的方法,其中,所述每一批Kafka消息的最大偏移量被迭代记录。


6.一种Kafka低阶消费程序消息积压监控装置,包括:
...

【专利技术属性】
技术研发人员:刘佳安靖胡潇涵王毅宋洋崔贝贝
申请(专利权)人:中国人寿保险股份有限公司
类型:发明
国别省市:北京;11

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

1