【发布时间】:2021-02-08 13:31:07
【问题描述】:
听起来如果代理失败,副本不会分配给其他代理。我用 3 个代理创建了简单的测试设置。我创建了一个分区 = 13,副本 = 3 的主题。
我关闭了一个代理(代理 1),我看到“ISR”和“领导者”已更新以反映这一事实(虽然,副本列表仍然显示刚刚关闭的代理的代理 ID)。
我用 id 4 引导了另一个全新的代理。此时,我假设 kafka 可以在上面主题的这个代理上创建副本,但似乎并非如此,为什么?
那么,为什么 Kafka 设计的不是在其他可用机器上创建副本,如果其中一个代理停止,持有副本。它只是切换领导者标志
PS:我从文档中了解到 - 副本不会自行自动修复。但是,分布式系统中的隐式假设背后的原因是在可用机器上创建副本以规避某些副本不可用的事实。
仔细查看文档
Kafka 集群将自动检测任何代理关闭或故障,并为该机器上的分区选举新的领导者。
确认,如果代理关闭,kafka 将不会针对创建额外的副本做任何事情。
-
副本背后的原因是什么没有创建 可用机器?
-
它根本不会被创建吗?如果是,副本数可能与原始数不同?
【问题讨论】:
标签: apache-kafka