线上排查导致Kafka客户端频繁断开的原因竟然是一行count++代码

某系统Kafka频繁宕机,排查后发现是消费者业务代码中日志记录方法的递归问题导致。由于count++操作,导致递归死循环,业务处理无法完成,超过Kafka心跳检测时间,从而使得Kafka客户端离线。修复此问题只需调整递归计数方式。
摘要由CSDN通过智能技术生成

就在上周公司某个系统的Kafka多个环境频繁宕机,让我给你慢慢说来!


是这样的,上周的某一天,接到同事的报案:数据库没有回显,看一下Kafka数据目前处理不正常。接到报案后我就开始排查。

排查的开始我以为是心跳检测的时间不足以完成业务处理呢,于是我修改了Kafka的这两个配置项session.timeout.ms(心跳检测时间)、max.poll.records(一次拉取消息条数),根据我的估算修改参数后,发现并没有任何效果。

Kafka宕机后,重新启动Kafka所在的服务器,随后Kafka就开始分配消费者组等就可以进行消费了,但是消费消息有些异常。经过多次测试,发现了一个Kafka消费异常的规律

消费异常规律:每次重启Kafka客户端之后,在宕机的时间段内堆积的消息就会被Kafka消费掉,直到生产者生产一条消息送到消费端开始消费,期间并没有返回任何结果,随后Kafka客户端再次离线。如果再重启Kakfa客户端,将循环往复这个过程。

Kafka监控
在这里插入图片描述

根据系统打印的日志,重新启动Kafka客户端之后,生产者生产一条消息时,查看监控确定Kafka将消息送往了消费端。查看消费端日

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值