Kafka 跨多台机器复制主题的分区以实现容错。 每个分区都有一个领导者和一个或多个追随者。
我想知道Kafka是如何在可能的候选者中选择成为每个topic/partition的follower的机器?
例如,假设有 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 是如何做到这一点的?
谢谢
最佳答案
您可以查看 github 上的 Kafka 源代码,了解它在默认情况下如何进行副本分配 - https://github.com/apache/kafka/blob/0.10.0/core/src/main/scala/kafka/admin/AdminUtils.scala#L47-L106
关于apache-kafka - Kafka 如何选择复制的跟随者节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38834651/