System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,更具体地说,它涉及一种kafka消息积压监测方法。
技术介绍
1、随着金融科技的不断发展,尤其是互联网的接入,客户交易的数据量不断显得“臃肿庞大”,一方面需要提升客户的良好体验,实现数据处理速度的实时性,另一方面又需要保存海量的数据,确保数据的安全和稳定,为了防止应用高并发请求量过大、数据库出现io异常等故障,达到每一笔交易业务都可以顺畅处理、消息不丢失的目的,因此引入消息中间件kafka集群用于数据存储、转发和流程处理。kafka集群最高支持百万级海量消息写入和读取,并能在分布式环境中维护消息的顺序性和一致性,保证了系统的高可用,它还支持分片进行数据的备份和容错,可以保证数据的可靠性。kafka也提供了丰富的api接口,目前支持多种主流的语言:java,python、c++、php等,可以方便快捷地与其他系统进行整合。
2、由于银行业务的复杂性,系统接入的多样性,kafka集群的参数的优化不同,很容易导致消息的消费异常,为了提高消费速度、数据生产不重复、避免心跳监测超时等,因此一套完善的kafka消息积压监测必不可少。但是目前kafka集群在生产环境运行中,存在以下不足:
3、1、新系统上线前,压测过程中数据量评估验证不充分,但是系统在生产环境中运行过程中,交易业务量放大,导致生产环境中生产者抽取数据压力增大,消费端来不及消费,造成中间件消息积压,一旦超过消息保留时间或者消息数据保存大小阈值,会造成消息自动清理,数据丢失。
4、2、消费者和生产者应用系统之间交互沟通不足
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消费模式,则在消费组列表信息中,通过Zook
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集群的消费组列表信息;
<...【专利技术属性】
技术研发人员:李杰,
申请(专利权)人:江苏苏宁银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。