Spingboot中如何确定一个消费者组的消费者数量?

时间:2020-12-28 03:54:22

标签: spring-boot apache-kafka

我正在使用注释@KafkaListner 来收听特定主题。但是突然我注意到消费者接收来自生产者的消息有很大的滞后。然后我增加了broker的分区数,问题就解决了。

经过一番研究,我发现一个消费者组中的消费者数量不能超过分区数量,否则部分消费者将处于非活动状态。

那么在 Spring Boot 中,是否每个单独的 @KafkaListener 都被视为单个消费者?如果没有,我如何才能找到消费者组中消费者的确切数量,从而能够正确配置分区?

1 个答案:

答案 0 :(得分:1)

<块引用>

每个@KafkaListener 是否被视为单个消费者?

不,它是一个消费者组,可以有一个(默认)或多个消费者线程(容器)。您可以使用 concurrency 属性覆盖 ContainerFactory 默认属性。

如您所见,主题分区的数量决定了并行度。如果并发大于分区数,则将并发调低,使每个Container得到一个分区。