暂停具有多个消费者的kafka主题

问题描述 投票:0回答:1

我有一个关于多个分区的主题,并且该主题的 4 个消费者都在同一个消费者组中。如果一个消费者暂停该主题,其他三个消费者也会暂停。如果有办法做到这一点吗?如果是,相反,如果一个消费者取消暂停,所有其他消费者都会取消暂停。

java apache-kafka kafka-consumer-api
1个回答
16
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.