Kafka在多台机器上复制主题的分区以实现容错 . 每个分区都有一个领导者和一个或多个粉丝 .
我想知道Kafka如何在可能的候选人中选择将成为每个主题/分区的追随者的机器?
例如,假设有1个主题有3个分区{A,B,C},复制因子为3.Kafka运行超过6台机器{1,2,...,6} .
一个可能的任务是:
1 2 3 4 5 6
A B C
C A B
B C A
但以下也是可能的:
1 2 3 4 5 6
A B C
A B C
A B C
当然,有很多可能的任务 .
谁能让我知道 Kafka 是如何做到这一点的?
谢谢
1 回答
您可以查看github上的Kafka源代码,看看默认情况下它是如何进行副本分配的 - https://github.com/apache/kafka/blob/0.10.0/core/src/main/scala/kafka/admin/AdminUtils.scala#L47-L106