apache-kafka - Kafka 如何选择复制的跟随者节点?

标签 apache-kafka

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/

相关文章:

elasticsearch - Kafka Mysql CDC到 Elasticsearch

hadoop - 我应该如何将我的事件流保存到冷存储?

java - 使用 Storm Topology 从 Kafka 队列消费数据

apache-kafka - 单个主题内的 Kafka 安全性 : allowing only certain users to read certain messages,

java - Apache 卡夫卡 VirtualBox : Streaming data from VM to Host PC resulting in error connecting to node

java - 如何使用 JUnit 5 测试 Kafka 消息消费者的 PACT

java - 如何让kafka Producer持续运行

docker - 具有高CPU使用率的logstash kafka输入过滤器

apache-kafka - Kafka - 获得最新偏移量的最简单方法

apache-kafka - 在kafka主题中将多个行文本作为一条消息推送