不同代理上相同主题的相同 Kafka 分区是否包含相同的消息(彼此重复)?
Does the same Kafka partitions of the same topic on different brokers contains the same messages ( duplicate each other)?
Broker 1:
+-------------------+
| Topic 1 |
| Partition 0 |
| |
| |
| Topic 2 |
| Partition 1 |
+-------------------+
Broker 2:
+-------------------+
| Topic 1 |
| Partition 2 |
| |
| |
| Topic 2 |
| Partition 0 |
+-------------------+
Broker 3:
+-------------------+
| Topic 1 |
| Partition 1 |
| |
| Topic 1 |
| Partition 2 |
| |
+-------------------+
Broker 1 Topic 1 Partition 1
也包含与 Broker 3 Topic 1 Partition 1
相同的内容
但 Broker 3 Topic 1 Partition 1
包含与 Broker 3 Topic 1 Partition 2
不同的内容
?
必须指定复制因子才能创建主题。它定义了 Kafka 集群中主题的副本数。
主题中的每个分区都有一个领导者,如果复制因子大于一,那么它就有副本。当消息首先发送到分区时,它会到达领导者(作为分区领导者的经纪人)。然后replicas向leader发送fetch request(周期性的发送fetch requests)来复制消息。与领导者具有相同消息的副本称为同步副本。在领导代理失败的情况下,这些也是分区领导的候选者。 (故障转移)
如果您设置 ack=all
生产者设置,那么当所有同步副本都收到记录时,生产者会得到确认。并且通过设置min.insync.replicas
大于1,可以保证所有被确认的记录在kafka集群中至少有一个副本。
因此,如果两个代理是主题分区的同步副本,则它们具有相同的消息,否则它们没有。
简短的回答是肯定的。
同一分区在所有代理上都是相同的。不同的分区包含不同的消息。
但是,Kafka 是一个移动的系统,因此并非所有内容都始终保持一致。
这取决于生产者的 'ack' 价值、网络吞吐量和分区以及许多其他因素。
Broker 1:
+-------------------+
| Topic 1 |
| Partition 0 |
| |
| |
| Topic 2 |
| Partition 1 |
+-------------------+
Broker 2:
+-------------------+
| Topic 1 |
| Partition 2 |
| |
| |
| Topic 2 |
| Partition 0 |
+-------------------+
Broker 3:
+-------------------+
| Topic 1 |
| Partition 1 |
| |
| Topic 1 |
| Partition 2 |
| |
+-------------------+
Broker 1 Topic 1 Partition 1
也包含与 Broker 3 Topic 1 Partition 1
但 Broker 3 Topic 1 Partition 1
包含与 Broker 3 Topic 1 Partition 2
?
必须指定复制因子才能创建主题。它定义了 Kafka 集群中主题的副本数。
主题中的每个分区都有一个领导者,如果复制因子大于一,那么它就有副本。当消息首先发送到分区时,它会到达领导者(作为分区领导者的经纪人)。然后replicas向leader发送fetch request(周期性的发送fetch requests)来复制消息。与领导者具有相同消息的副本称为同步副本。在领导代理失败的情况下,这些也是分区领导的候选者。 (故障转移)
如果您设置 ack=all
生产者设置,那么当所有同步副本都收到记录时,生产者会得到确认。并且通过设置min.insync.replicas
大于1,可以保证所有被确认的记录在kafka集群中至少有一个副本。
因此,如果两个代理是主题分区的同步副本,则它们具有相同的消息,否则它们没有。
简短的回答是肯定的。 同一分区在所有代理上都是相同的。不同的分区包含不同的消息。
但是,Kafka 是一个移动的系统,因此并非所有内容都始终保持一致。 这取决于生产者的 'ack' 价值、网络吞吐量和分区以及许多其他因素。