kafka消息大量积压,消费者消费很慢,poll存在消费不到数据的情况,这种情况怎么解决?

Palan 发表于: 2021-01-06   最后更新时间: 2021-01-06  

集群环境,3台机器,某个topic有360多个消费者节点,单线程异步消费,自动提交offset,存在有时候消费不到数据的情况,轮询拉取的数据量为0,但是单个消费者已经积压了近40w条数据,每条数据平均0.1M,机器的资源负载也不高,把生产者停了,积压的数据消费还是很慢,能消费到数据时候,数据总量不超过1M,消费积压情况是通过Kafka Manager查看的,麻烦各位看看这种情况是怎么导致的。



您需要解锁本帖隐藏内容请: 点击这里
本帖隐藏的内容




上一条: flink程序消费kafka速度起不来,请问下如何调整消费速度?
下一条: kafka消费群组出现Consumer group 'opentsdb_AQJC1' has no active members状态

  • 1、一个topic有360个消费者,topic的分区数一定要大于等于360,否则会有消费者永远拿不到消息。
    2、你的消息过大,kafka是批量拉取消息的,使用一个批次的消息数量就不多,但是即使这样,一般瓶颈不在消费者,因为kafka将消息丢给处理程序后,只是处理能力较慢引起的,所以你需要了解你每秒产生多少条消息,消费的能力如何(可以抽一个分区来计算统计)

    • 您好,360多个消费者都是不同消费者组,topic分区数是3,消费者拿到数据就扔线程池处理了,处理很快,现在每次去poll,大概poll四五次才能取到数据,但是kafka已经积压了几十万,生产大概每秒3条数据

        • 查看每个消费者组的消费情况,通过kafka manager 和命令行查看,平均每个消费者组都积压了 30w条,有的消费者积压的多 ,有的少,但是poll拉取的数量是0,连续poll才能拉取的数据,也设置一些调整性能的参数 比如num.network.threads之类的,还是有拉取不到数据的情况