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
答案 0 :(得分:2)
必须指定复制因子才能创建主题。它定义了Kafka集群中某个主题的副本数。
主题中的每个分区都有一个领导者,如果复制因子大于1,则它具有副本。当消息首先发送到分区时,它到达领导者(代理,即分区领导者)。然后副本将提取请求(定期发送提取请求)发送给领导者以复制消息。与领导者具有相同消息的副本称为in-sync-replicas。在领导者经纪人失败的情况下,这些人也可能成为分区领导者。 (故障转移)
如果您设置了ack=all
生产者设置,那么当所有同步副本都收到记录时,生产者将得到确认。此外,通过将min.insync.replicas
设置为大于1,可以保证所有已确认的记录在kafka群集中至少具有一个副本。
因此,如果两个代理在主题分区中处于同步复制状态,那么它们将具有相同的消息,否则它们不会。
答案 1 :(得分:0)
简短的回答是。 在所有代理上,相同的分区是相同的。不同的分区包含不同的消息。
但是,Kafka是一个移动的系统,因此并非所有内容都始终对齐。 它取决于生产者的“确认”价值,网络吞吐量和分区以及许多其他因素。