System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种kafka消息积压监测方法和装置制造方法及图纸_技高网

一种kafka消息积压监测方法和装置制造方法及图纸

技术编号:41177253 阅读:17 留言:0更新日期:2024-05-07 22:12
本发明专利技术涉及计算机技术领域,公开了一种kafka消息积压监测方法和装置,其技术方案要点是包括如下步骤:S1、基于客户端编程语言编写监测流程,并将所述监测流程部署于kafka集群任一服务代理节点;S2、基于监测流程,分别配置zookeeper集群和kafka集群的节点信息;S3、执行监测流程,所述监测流程包括如下步骤:S31、判断当前的消费模式所属类别;S32、根据当前消费模式的类别,获取对应消费模式下的所有消费组列表信息;S33、根据消费组列表信息,获取消费者的消费情形数据;S34、根据消费情形数据中的消费偏移量,判断是否超出消息积压阈值,若超过,则发出报警指令。

【技术实现步骤摘要】

本专利技术涉及计算机,更具体地说,它涉及一种kafka消息积压监测方法。


技术介绍

1、随着金融科技的不断发展,尤其是互联网的接入,客户交易的数据量不断显得“臃肿庞大”,一方面需要提升客户的良好体验,实现数据处理速度的实时性,另一方面又需要保存海量的数据,确保数据的安全和稳定,为了防止应用高并发请求量过大、数据库出现io异常等故障,达到每一笔交易业务都可以顺畅处理、消息不丢失的目的,因此引入消息中间件kafka集群用于数据存储、转发和流程处理。kafka集群最高支持百万级海量消息写入和读取,并能在分布式环境中维护消息的顺序性和一致性,保证了系统的高可用,它还支持分片进行数据的备份和容错,可以保证数据的可靠性。kafka也提供了丰富的api接口,目前支持多种主流的语言:java,python、c++、php等,可以方便快捷地与其他系统进行整合。

2、由于银行业务的复杂性,系统接入的多样性,kafka集群的参数的优化不同,很容易导致消息的消费异常,为了提高消费速度、数据生产不重复、避免心跳监测超时等,因此一套完善的kafka消息积压监测必不可少。但是目前kafka集群在生产环境运行中,存在以下不足:

3、1、新系统上线前,压测过程中数据量评估验证不充分,但是系统在生产环境中运行过程中,交易业务量放大,导致生产环境中生产者抽取数据压力增大,消费端来不及消费,造成中间件消息积压,一旦超过消息保留时间或者消息数据保存大小阈值,会造成消息自动清理,数据丢失。

4、2、消费者和生产者应用系统之间交互沟通不足,系统运行一段时间之后,生产者应用侧发送数据结构发生变化,尤其是消息主体内容数据增大,kafka默认的单条消息的大小为1m,一旦发生消息数据大小超过,会自动截取数据,数据部分丢失,严重影响系统的完整。

5、3、kafka集群的主题参数设置不准确,比如分片数目过小、副本数目过大、自动创建主题参数未屏蔽等,一方面可能导致消费缓慢,另一方面导致存储空间不足、重复消费、io等待超时等。

6、目前虽然都有kafka集群的管理标准和规范,但是研发和运维缺少对中间件消费能力的关注,而且也没有实时进行监控的产品,从而导致问题发现不及时,出现故障严重才会认真对待,造成了不可避免的损失。


技术实现思路

1、本专利技术的目的是提供一种kafka消息积压监测方法和装置,能够快速发现kafka集群消息积压的情况,能够对kafka集群进行实时监控,从而避免节点重平衡、元数据复制异常、甚至内存异常的故障,提高应用系统消费性能,避免发生生产事故,避免更大的经济损失。

2、本专利技术的上述技术目的是通过以下技术方案得以实现的:一种kafka消息积压监测方法,包括如下步骤:

3、s1、基于客户端编程语言编写监测流程,并将所述监测流程部署于kafka集群任一服务代理节点;

4、s2、基于监测流程,分别配置zookeeper集群和kafka集群的节点信息;

5、s3、执行监测流程,所述监测流程包括如下步骤:

6、s31、判断当前的消费模式所属类别;

7、s32、根据当前消费模式的类别,获取对应消费模式下的所有消费组列表信息;

8、s33、根据消费组列表信息,获取消费者的消费情形数据;

9、s34、根据消费情形数据中的消费偏移量,判断是否超出消息积压阈值,若超过,则发出报警指令。

10、作为本专利技术的一种优选技术方案,所述客户端编程语言包括shell、java、python、c++、php。

11、作为本专利技术的一种优选技术方案,所述节点信息为节点ip地址运行端口号信息,在配置kafka集群和zookeeper集群的节点信息时,还同时配置消费命令和标准化消费模式。

12、作为本专利技术的一种优选技术方案,所述监测流程设置有可自定义的轮询周期。

13、作为本专利技术的一种优选技术方案,所述s32包括如下子步骤:若消费模式为zookeeper消费模式,则获取zookeeper集群的地址和端口,并根据zookeeper集群的地址和端口,查询zookeeper集群的消费组列表信息;

14、若消费模式为bootstrap-server消费模式,则获取kafka集群的地址和端口,并根据kafka集群的地址和端口,查询kafka集群消费组列表信息。

15、作为本专利技术的一种优选技术方案,所述s33包括如下子步骤:若为zookeeper消费模式,则在消费组列表信息中,通过zookeeper集群的ip和消费组名称获取消费情形数据;

16、若为bootstrap-server消费模式,则在消费组列表信息中,通过kafka集群的ip和消费组名称获取消费情形数据。

17、作为本专利技术的一种优选技术方案,所述s34包括如下子步骤:根据消费情形数据中的消费偏移量,得到当前lag值,并将当前lag值和预设lag阈值进行对比,若超过预设lag阈值,则消费偏移量超过消息积压阈值,发出报警指令;

18、若当前lag值不超过预设lag阈值,则消息偏移量不超过消息积压阈值。

19、作为本专利技术的一种优选技术方案,所述报警指令的接收对象包括zabbix监控报警平台、邮件服务平台、短信服务平台。

20、一种kafka消息积压监测装置,包括:处理器和存储器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述的方法。

21、综上所述,本专利技术具有以下有益效果:通过本专利技术的kafka消息积压监测方法,能够快速发现kafka集群消息积压,能够对kafka集群进行实时监控,从而避免节点重平衡、元数据复制异常、甚至内存异常的故障,提高应用系统消费性能,避免发生生产事故,避免更大的经济损失。本专利技术的方法和装置可以帮助系统管理员实时掌握kafka集群中所有消费组的消费详情、各个主题的积压情况以及监测报警,通过配置kafka和zookeeper的节点信息、消费命令和标准化消费模式,达到消息队列积压的数据展示,帮助研发人员及时发现消费应用端代码缺陷、消息参数配置不准确、分片分配不均衡等情形,能够让系统负责人准确知道kafka整体运行状况,降低了研发成本,提高了系统稳定性;本专利技术的方法在运行过程中,能够支持两种消费模式的消息积压检测,能够兼容不同版本的kafka集群监测,减少了出错的几率,无需特殊定制,适用性更广。

本文档来自技高网...

【技术保护点】

1.一种kafka消息积压监测方法,其特征是:包括如下步骤:

2.根据权利要求1所述的一种kafka消息积压监测方法,其特征是:所述客户端编程语言包括shell、java、python、c++、php。

3.根据权利要求1所述的一种kafka消息积压监测方法,其特征是:所述节点信息为节点IP地址运行端口号信息,在配置kafka集群和zookeeper集群的节点信息时,还同时配置消费命令和标准化消费模式。

4.根据权利要求1所述的一种kafka消息积压监测方法,其特征是:所述监测流程设置有可自定义的轮询周期。

5.根据权利要求1所述的一种kafka消息积压监测方法,其特征是:所述S32包括如下子步骤:若消费模式为Zookeeper消费模式,则获取zookeeper集群的地址和端口,并根据zookeeper集群的地址和端口,查询zookeeper集群的消费组列表信息;

6.根据权利要求1所述的一种kafka消息积压监测方法,其特征是:所述S33包括如下子步骤:若为Zookeeper消费模式,则在消费组列表信息中,通过Zookeeper集群的IP和消费组名称获取消费情形数据;

7.根据权利要求1所述的一种kafka消息积压监测方法,其特征是:所述S34包括如下子步骤:根据消费情形数据中的消费偏移量,得到当前lag值,并将当前lag值和预设lag阈值进行对比,若超过预设lag阈值,则消费偏移量超过消息积压阈值,发出报警指令;

8.根据权利要求1所述的一种kafka消息积压监测方法,其特征是:所述报警指令的接收对象包括zabbix监控报警平台、邮件服务平台、短信服务平台。

9.一种kafka消息积压监测装置,其特征是:包括:处理器和存储器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1-8中任一项所述的方法。

...

【技术特征摘要】

1.一种kafka消息积压监测方法,其特征是:包括如下步骤:

2.根据权利要求1所述的一种kafka消息积压监测方法,其特征是:所述客户端编程语言包括shell、java、python、c++、php。

3.根据权利要求1所述的一种kafka消息积压监测方法,其特征是:所述节点信息为节点ip地址运行端口号信息,在配置kafka集群和zookeeper集群的节点信息时,还同时配置消费命令和标准化消费模式。

4.根据权利要求1所述的一种kafka消息积压监测方法,其特征是:所述监测流程设置有可自定义的轮询周期。

5.根据权利要求1所述的一种kafka消息积压监测方法,其特征是:所述s32包括如下子步骤:若消费模式为zookeeper消费模式,则获取zookeeper集群的地址和端口,并根据zookeeper集群的地址和端口,查询zookeeper集群的消费组列表信息;

<...

【专利技术属性】
技术研发人员:李杰
申请(专利权)人:江苏苏宁银行股份有限公司
类型:发明
国别省市:

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

1