【发布时间】:2017-01-12 17:46:15
【问题描述】:
我正在尝试将我的 KAFKA 客户端从 0.8.2 更新到 0.9.0.1,以减少对 zookeeper 集群的压力。我遇到了以下问题:
KAFKA 消费者协议说“加入组请求将停在协调器上,直到所有预期的成员都发送了他们自己的加入组请求”。然后我发现加入组请求是由poll()触发的,并且在组再平衡完成之前该方法不会返回。那么这是否意味着我需要与消费者数量相同数量的消费者线程来确保所有消费者可以同时发出组加入请求?如果我有超过 10000 个分区并且我希望每个分区都有自己的消费者,这是否意味着我需要超过 10000 个消费者线程?
要触发心跳,我需要调用 poll()。但是如果我不想收到新消息,因为旧消息仍在消耗,我可以通过 consumer.pause() -> consumer.poll() -> consumer.resume() 来做到这一点吗?有没有更好的方法来做到这一点?
【问题讨论】:
标签: apache-kafka kafka-consumer-api