【发布时间】:2020-05-09 14:24:02
【问题描述】:
我有一个消费主题的消费者。主题有 6 个分区。分配给组的单个消费者。
我做如下投票
Consumer.poll(10000)
当没有记录返回时,我退出消费者获取。
从文档中,我相信当没有记录可以使用并且持续时间 10000 足以重新平衡和获取记录时,poll 返回空。 大多数时候 poll 会消耗所有分区的记录,但有时 poll 会从 3 个分区中获取记录并返回空记录而不消耗其他 3 个分区。
顺便说一句,我使用 2.0.1 Kafka 客户端,Kafka 服务器版本是 2.11 - 2.2.0。
任何人都知道为什么我的消费者会跳过其他分区并返回空记录。我应该怎么做才能消耗所有分区。
【问题讨论】:
-
底线:当您调用
poll()时,不能保证每次都能从所有分区获取数据,即使所有分区都有可用数据。消费者将确保认为,它通过连续调用poll()对所有分区进行“循环”,以确保没有分区饿死。
标签: apache-kafka kafka-consumer-api apache-kafka-streams