将kafka主题与多个消费者暂停

时间:2017-07-18 13:43:40

标签: java apache-kafka kafka-consumer-api

我在同一个使用者群组中有多个分区的一个主题和该主题的4个使用者。如果一个消费者暂停该主题,其他三个消费者是否会暂停。如果有办法做到这一点?如果是的话,如果一个人取消暂停,所有其他消费者都会被取消暂停。

1 个答案:

答案 0 :(得分:5)

KafkaConsumer中的pause()和resume()操作不会在协议级别与Kafka代理生成任何请求。 调用pause(),只是将指定的分区设置为暂停,在本地将它们标记为“不可获取”。 Kafka协议有一个Fetch请求,用于询问从客户端到服务器获取记录(这是在poll()方法中发生的事情)。当分配的分区暂停时,它们被视为“不可获取”,因此不会发送获取请求。消费者和经纪人之间没有沟通;经纪人不知道你在消费者身上调用了pause()。所以答案是否定的:即使因为pause()在分区级别而不是作为一个整体的主题级别,其他消费者也不会被暂停。