我有一个复制因子为 3 的主题"reptop"。我的集群由 4 个代理组成 [ID: 0,1,2,3]。创建主题时,代理 0、2 和 3 被分配给该主题,领导者为 '2',现在当我的代理之一、领导者或追随者出现故障时,Kafka 不会将主题复制到 broker:1,即使它很健康并且 ISR 小于复制因子,但是当代理出现故障并最初被分配给该主题时, 返回 Kafka 将主题复制到此节点。所以问题是为什么 kafka 不将主题复制到创建主题时未分配主题的代理,即使集群上有健康的代理和"ISR
这是设计使然。如果要重新分配分区,则必须使用重新分配工具执行此操作。另一种选择是启动一个缺少 ID 的新代理实例。 Kafka 不会像 hdfs 那样"自我修复",而且在很多情况下你不希望它这样做。如果你愿意,可以使用像 confluent rebalancer 这样的告诉那里。