我有一个关于多个分区和同一消费者组中的4个消费者的主题。如果其中一个消费者暂停了主题,其他三个消费者会被暂停吗?是否有方法可以做到这一点?如果是,反之亦然,如果一个取消暂停,所有其他消费者都会取消暂停。
KafkaConsumer中的pause()和resume()操作不会在Kafka broker协议级别生成任何请求。调用pause()仅将已分配的分区本地标记为“不可获取”,从而将它们暂停。Kafka协议有一个Fetch请求,用于要求客户端从服务器获取记录(这是在poll()方法中发生的事情)。当分配的分区被暂停时,它们被视为“不可获取”,因此Fetch请求不会被发送。消费者和broker之间没有通信;broker不知道您在消费者上调用了pause()。所以答案是否定的:其他消费者不会被暂停,即使因为pause()是在分区级别而不是整个主题级别。