我已经开始学习卡夫卡,并有一个天真的问题。让我们有一个场景,其中有5个节点集群,主题有一个分区和3个副本。Broker-0有领导分区,Broker-1有追随者分区,Broker-2有追随者分区。现在,如果一个包含跟随者分区的代理崩溃了,那么剩下一个领导者和一个追随者。我的问题是,如果我们向集群添加另一个节点,如何恢复失败的追随者分区。一旦我们向集群添加了一个新的代理,是否有一种方法可以取回跟随者分区。
发布于 2021-05-08 18:34:48
由于您的是一个5节点集群,一旦包含主题追随者分区的节点之一崩溃,其余2个节点都不会成为新的追随者,因为在Kafka中不会发生自动跟踪创建。
例如TopicA Partition1 - (node1 -领导者,node2 -追随者,node3 -追随者)
让我们假设node2崩溃,在这种情况下,您的TopicA Partition1将保持复制状态,除非具有相同节点id的节点正在旋转,或者使用分区重新分配工具手动重新分配分区。
发布于 2021-05-08 23:53:47
为了让新的或旧的节点接管丢失的副本,您需要运行kafka-reassign-partitions tool
分区重新分配工具可以.用于有选择地将分区的副本移动到特定的代理集。
或者您可以简单地自己恢复失败的代理,而不是“展开”集群(假设您为新节点提供了自己的唯一代理ID)
https://stackoverflow.com/questions/67450551
复制相似问题