Kafka消费者组默认分配策略疑问:3个消费者是否会闲置?
Kafka消费者组默认分配策略下的消费者闲置问题
先明确:Kafka默认的分区分配策略是RangeAssignor,核心逻辑是按Topic维度单独分配,步骤如下:
- 把每个Topic的分区按序号排序,消费者组内的消费者也按ID排序
- 对单个Topic,计算每个消费者应分配的分区数:
总分区数 ÷ 消费者数量,如果有余数,前N个消费者(N=余数)会多分配1个分区
回到你的场景:
- Topic a有3个分区,分给3个消费者:刚好每个消费者分到1个分区,第三个消费者会拿到Topic a的其中1个分区
- Topic b有2个分区,分给3个消费者:计算得每个消费者基础分配0个,余数2,所以前2个消费者各拿1个,第三个消费者没分到这个Topic的分区
结论:第三个消费者不会处于闲置状态,它会负责消费Topic a的1个分区的消息。
内容的提问来源于stack exchange,提问作者Kevin Meredith
相关产品推荐
相关产品推荐

