Kafka主题和分区

时间:2018-01-22 16:00:48

标签: apache-kafka

我刚刚开始探索卡夫卡。 我有关于kafka主题和分区的查询。

假设我们有3台机器x.x.x.1,x.x.x.2,x.x.x.3

我们有一个主题测试,它有3个分区和3个副本设置为1,2,3以上的3台机器。

是否可以将第一个分区数据写入机器1.第二个分区数据到机器2,第三个分区数据到第三个机器总是?

如果可能比怎么样?

1 个答案:

答案 0 :(得分:2)

分区分配的工作方式如下。 从随机broker-id(不能是x.x.x.1而是x.x.x.3)开始,分区领导0将被分配给这样的代理,分区领导1将分配给下一个代理,依此类推。 因此,例如,如果选择代理x.x.x.2,则分区前导0将在其上(2),x.x.x.3上的分区前导1,最后在x.x.x.1上分区前导2。 关于跟随者副本,它们被分配为一个起始代理:在此示例中,分区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