【发布时间】:2018-01-23 00:29:37
【问题描述】:
我刚开始探索卡夫卡。 我对 kafka 主题和分区有疑问。
假设我们有 3 台机器 x.x.x.1 , x.x.x.2 , x.x.x.3
我们有一个主题测试,它有 3 个分区和 3 个副本集作为 1,2,3 以上的 3 台机器。
我们是否可以将第一个分区数据写入机器 1。第二个分区数据写入机器 2,将第三个分区数据写入第三台机器?
如果有可能比怎么做?
【问题讨论】:
标签: apache-kafka
我刚开始探索卡夫卡。 我对 kafka 主题和分区有疑问。
假设我们有 3 台机器 x.x.x.1 , x.x.x.2 , x.x.x.3
我们有一个主题测试,它有 3 个分区和 3 个副本集作为 1,2,3 以上的 3 台机器。
我们是否可以将第一个分区数据写入机器 1。第二个分区数据写入机器 2,将第三个分区数据写入第三台机器?
如果有可能比怎么做?
【问题讨论】:
标签: apache-kafka
分区分配的工作方式如下。 从一个随机的 broker-id 开始(不能是 x.x.x.1 而是 x.x.x.3),partition leader 0 将分配给这样的 broker,partition leader 1 分配给下一个,依此类推。 例如,如果选择了代理 x.x.x.2,则分区领导者 0 将在其上 (2),分区领导者 1 在 x.x.x.3 上,最后分区领导者 2 在 x.x.x.1 上。 关于追随者副本,它们被分配增加一个起始代理:在此示例中,分区 0 的第一个追随者将在 x.x.x.3 上,第二个追随者将在 x.x.x.1 上。分区 1 和 2 的跟随者副本也会发生同样的情况。通过这种方式,复制允许 HA 并且流量在集群中得到平衡。 顺便说一句,有一个名为“kafka-reassign-partitions.sh”的工具,您可以使用它通过 JSON 指定您的首选分配。你可以在这里找到更多:https://cwiki.apache.org/confluence/display/KAFKA/Replication+tools#Replicationtools-4.ReassignPartitionsTool
【讨论】: