假设我们有一个名为Topic
的主题和一个由三个消费者组成的消费者组CG
。组偏移等于0。
消费者开始阅读消息。
读取顺序:
问题是:消息1会发生什么?
或者也许我误解了消费者,因为我是Kafka的新手,他们如何阅读消息。
版本:Apache Kafka 2.4.0
答案 0 :(得分:2)
每个使用者都将分配有分区。 假设我们有6个分区:
消费者1:Partiton 1和2
消费者2:分区3和4
使用者3:分区5和6
消费者1发生故障时,消费者组将重新平衡并将空闲分区分配给其他消费者,从而为我们提供以下设置:
消费者2:分区 1 和3和4
使用者3:分区 2 和5&6
其他使用者将从该分区上最后提交的偏移量开始。
答案 1 :(得分:2)
您错过了大约partitions,同一组的多个使用者将永远不会使用来自同一分区的邮件
假设您的主题具有三个分区(P0,P1,P2),并且如果您有三个消费者(C1,C2,C3)属于同一组,那么每个消费者将从每个分区开始消费
如果任何使用者未能提交偏移量并下降,那么它将再次开始使用先前偏移量(在您的情况下为0)中的消息
假设您的主题是5个分区(P0,P1,P2,P3,P4)和三个使用者(同一个组)(C0,C1,C3)。然后,消费者将尝试通过均分两个分区来平等地实现负载均衡
C1从P0和P1消耗,C2从P2和P3消耗,其余C3从P4消耗。