Lets say we have a master and slave consumers for a topic with one partition. At first master consumes messages from the topic and slave remains idle. If master fails slave takes over and starts consuming the messages. And the again the master came alive. Will the master can again starts consuming messages and makes slave idle. If so how to achieve this?
答案 0 :(得分:0)
在卡夫卡内,消费者没有master
和slave
的概念。消费者是消费者群的一部分,由消费者的group.id
定义。对于n
分区,使用者组中活动使用者的最大数量为n
。您可以有更多,但它们将处于闲置状态。
例如,假设一个主题有6个分区。如果你有6 消费者组中的消费者,每个消费者将从1中读取 划分。如果您有12个,则有六个消费者将在 其他六个从1个分区消耗。如果您有3个消费者,则每个 消费者将读取2个分区。
在您的情况下,对于具有 1 分区的主题,每个消费者组中只有 1 个消费者一次可以被积极消费。如果您的使用者组中有 2 个使用者,则consumer-1
将使用单个分区中的所有消息。如果该使用者失败,则consumer-2
将以consumer-1
的最后一个已知偏移量开始消耗。如果consumer-1
重新联机,它将保持空闲状态,直到consumer-2
失败为止。所有消费者都受到平等对待。