@Alpacadh
2022-09-18T17:20:26.000000Z
字数 488
阅读 252
kafka
同一个 Partition 可能会有多个 Replica(对应 server.properties 配置中的 default.replication.factor=N)。没有 Replica 的情况下,一旦 Broker 宕机,其上所有 Partition 的数据都不可被消费,同时 Producer 也不能再将数据存于其上的 Partition。
引入 Replica 之后,同一个 Partition 可能会有多个 Replica,而这时需要在这些 Replica 之间选出一个 Leader,Producer 和 Consumer 只与这个 Leader 交互,其它 Replica 作为 Follower 从 Leader 中复制数据。
为了起到备份的效果,简单设想下,如果让我们来分配replica,我们会怎么分配?
1)replica与所备份的节点不能再一台机器上,否则就起不到备份的效果
2)replica尽量均匀的分布在集群机器上,如果replica全部都在某几台机器上,那么一旦这台机器挂了,会丢失多个partition的备份。