kafka出现若干分区不消费的现象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kafka出现若干分区不消费的现象相关的知识,希望对你有一定的参考价值。

参考技术A 近日,有用户反馈kafka有topic出现某个消费组消费的时候,有几个分区一直不消费消息,消息一直积压(图1)。除了一直积压外,还有一个现象就是消费组一直在重均衡,大约每5分钟就会重均衡一次。具体表现为消费分区的owner一直在改变(图2)。

业务侧没有报错,同时kafka服务端日志也一切正常,同事先将消费组的机器滚动重启,仍然还是那几个分区没有消费,之后将这几个不消费的分区迁移至别的broker上,依然没有消费。
还有一个奇怪的地方,就是每次重均衡后,不消费的那几个分区的消费owner所在机器的网络都有流量变化。按理说不消费应该就是拉取不到分区不会有流量的。于是让运维去拉了下不消费的consumer的jstack日志。一看果然发现了问题所在。

让业务方去查证业务日志,验证了积压的这几个分区,总是在循环的拉取同一批消息。

临时解决方法就是跳过有问题的消息,将offset重置到有问题的消息之后。本质上还是要业务侧修改业务逻辑,增加超时或者异常处理机制,最好不要采用自动提交offset的方式,可以手动管理。

以上是关于kafka出现若干分区不消费的现象的主要内容,如果未能解决你的问题,请参考以下文章

相同数据源情况下,使用Kafka实时消费数据 vs 离线环境下全部落表后处理数据,结果存在差异

Kafka Beep:Kafka集群“诊断”利器

系统运维系列 之Kafka查询不到正在消费的的消费组信息

系统运维系列 之Kafka查询不到正在消费的的消费组信息

kafka的暂停消费和重新开始消费问题

(线上问题十二)网络故障引起kafka客户端无法消费问题