【发布时间】:2015-09-14 15:24:48
【问题描述】:
【问题讨论】:
-
首先,您的示例中的第四个消费者将什么也不做,因为如果消费者的数量大于分区的数量,一些消费者将处于空闲状态并且将没有分区来消费。其次,请看这个关于再平衡如何工作的答案 -stackoverflow.com/questions/28574054/…
-
@serejja 谢谢,你可以在下面回答
标签: apache-kafka
【问题讨论】:
标签: apache-kafka
我会在这里给出更详细的答案。
所以第一点是没有理由拥有比正在消费的分区数更多的消费者线程(并且每个消费者至少有一个消费者线程)。原因是如果你的消费者线程比分区多,一些消费者线程最终会处于空闲状态,只会浪费资源。因此,鉴于您附加的示例,3 个分区有 4 个消费者是没有意义的。
第二点——分区分配取决于组内消费者选择的策略。目前有 2 种分区分配策略 - Range 和 RoundRobin。如果您使用Range 策略,您可以预测重新平衡后每个消费者将使用哪些分区。使用RoundRobin 策略虽然您无法预先预测重新平衡后消费者的分区分配。
解释消费者重新平衡如何工作以及如何分配分区的详细答案是here。
您还可以在 /consumers/[group_id]/owners/[topic]/[partition]/consumers/[group_id]/owners/[topic]/[partition] 的 Zookeeper 中查看您的消费者组的当前分区分配
【讨论】: