消费者用了一段时间之后会自动断开,不报错,生产者不受影响
查看消费者是否还存在
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group test
发现消费者已经不消费
原因:
原来是在 kafka consumer 运行时,要和kafka集群的协调节点做心跳交流,这也是kafka集群给consumer做负载均衡的条件。但是但是consumer内部也会有一个计时器,记录上一次向 kafka 集群 poll 的时间,另外心跳线程会检测该现在距上一次poll的时间,如果该时间差超过了设定时间(kafka consumer默认的是 5分钟),就会想kafka集群发出leaveGroup,这时kafka集群会注销掉该consumer 的信息
————————————————
版权声明:本文为CSDN博主「木号」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/goodluck_mh/article/details/79840331
解决方法:
kafka consumer 在消费消息时,不要使用阻塞方法,比如blockqueue、网络发送设置超时时间
参考文档