总结一次kafka的consumer消费能力很低的处理方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了总结一次kafka的consumer消费能力很低的处理方案相关的知识,希望对你有一定的参考价值。

问题

项目使用spring-kafka操作消费kafka
近期出现消费速度变慢,consumer消费一条数据平均需要200ms的时间,并且频繁发生,consumer会停止消费十几秒。

日志分析

以下为日志记录,consumer会时长从消费组中掉出再重新加入

o.a.k.c.c.i.AbstractCoordinator:542 - Marking the coordinator 127.0.0.1:9092 (id: 2147483643 rack: null) dead for group group.id 
o.a.k.c.c.i.AbstractCoordinator:505 - Discovered coordinator 127.0.0.1:9092 (id: 2147483643 rack: null) for group group.id. 
o.a.k.c.c.i.ConsumerCoordinator:292 - Revoking previously assigned partitions [topic-12] for group group.id 
o.a.k.c.c.i.AbstractCoordinator:326 - (Re-)joining group group.id 
o.a.k.c.c.i.AbstractCoordinator$SyncGroupResponseHandler:434 - Successfully joined group group.id with generation 12182 
o.a.k.c.c.i.ConsumerCoordinator:231 - Setting newly assigned partitions [topic-12] for group group.id 

解决方案

kafka服务配置文件server.properties提高系统配置参数

#Broker处理消息的最大线程数
num.network.threads=cpu核数加1
#Broker处理磁盘IO的线程数
num.io.threads=cpu核数2倍,最大不超过3倍

备份并重启kafka服务

以上是关于总结一次kafka的consumer消费能力很低的处理方案的主要内容,如果未能解决你的问题,请参考以下文章

Kafka总结

.net Kafka.Client多个Consumer Group对Topic消费不能完全覆盖研究总结

troubleshooting记一次Kafka集群重启导致消息重复消费问题处理记录

Kafka消费组(consumer group)

消息队列-kafka消费者原理

kafka中的消费组