Apache kafka 卡夫卡主题与划分

Apache kafka 卡夫卡主题与划分,apache-kafka,Apache Kafka,我刚开始探索卡夫卡。 我对卡夫卡主题和分区有疑问 假设我们有3台机器x.x.x.1,x.x.x.2,x.x.x.3 我们有一个主题测试,它有3个分区和3个副本集,作为1,2,3以上的3台机器 我们可以将第一分区数据写入机器1吗。是否始终将第二分区数据发送给机器2,将第三分区数据发送给第三台机器 如果可能的话,分区分配的工作方式如下所示。 从随机代理id(不能是x.x.x.1,而是x.x.x.3)开始,分区前导0将分配给该代理,分区前导1分配给下一个代理,依此类推。 例如,如果选择了代理x.x.x

我刚开始探索卡夫卡。 我对卡夫卡主题和分区有疑问

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

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

我们可以将第一分区数据写入机器1吗。是否始终将第二分区数据发送给机器2,将第三分区数据发送给第三台机器


如果可能的话,分区分配的工作方式如下所示。 从随机代理id(不能是x.x.x.1,而是x.x.x.3)开始,分区前导0将分配给该代理,分区前导1分配给下一个代理,依此类推。 例如,如果选择了代理x.x.x.2,那么分区前导0将位于代理x.x.x.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指定首选的分配。您可以在这里找到更多信息:

分区分配的工作方式如下。 从随机代理id(不能是x.x.x.1,而是x.x.x.3)开始,分区前导0将分配给该代理,分区前导1分配给下一个代理,依此类推。 例如,如果选择了代理x.x.x.2,那么分区前导0将位于代理x.x.x.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指定首选的分配。您可以在这里找到更多信息:

如果在一开始我们有5个副本集,1个主题3分区。据我所知,仅由这3个分区2使用的3个副本集尚未使用。如果将来3台机器上的负载增加,是否可以将数据发送到其他2台机器进行负载平衡?如果是,则由kafka自动完成,或者我们必须手动完成?如果在开始时,我们有5个副本集,1个主题3个分区。据我所知,仅由这3个分区2使用的3个副本集尚未使用。如果将来3台机器上的负载增加,是否可以将数据发送到其他2台机器进行负载平衡?如果是,那么它是由卡夫卡自动完成的,还是我们必须手动完成?