其中一名Kafka经纪人已经被压垮,如何恢复?

vuktfyat  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(313)

我想我对Kafka经纪人集群是如何工作的感到困惑和不清楚。

当前结构:

我从这里下载了kafka broker集群和3台机器
其中一个主题是这样的

ubuntu@kafka1:~/.kafka$ bin/kafka-topics.sh --describe --zookeeper localhost:11111 --topic multi_partitions
Topic:multi_partitions      PartitionCount:10       ReplicationFactor:3     Configs:retention.ms=-1,retention.bytes=-1
        Topic: multi_partitions     Partition: 0    Leader: 1       Replicas: 2,0,1 Isr: 1,0
        Topic: multi_partitions     Partition: 1    Leader: 0       Replicas: 0,1,2 Isr: 1,0
        Topic: multi_partitions     Partition: 2    Leader: 1       Replicas: 1,2,0 Isr: 1,0
        Topic: multi_partitions     Partition: 3    Leader: 1       Replicas: 2,1,0 Isr: 1,0
        Topic: multi_partitions     Partition: 4    Leader: 0       Replicas: 0,2,1 Isr: 1,0
        Topic: multi_partitions     Partition: 5    Leader: 1       Replicas: 1,0,2 Isr: 1,0
        Topic: multi_partitions     Partition: 6    Leader: 1       Replicas: 2,0,1 Isr: 1,0
        Topic: multi_partitions     Partition: 7    Leader: 0       Replicas: 0,1,2 Isr: 1,0
        Topic: multi_partitions     Partition: 8    Leader: 1       Replicas: 1,2,0 Isr: 1,0
        Topic: multi_partitions     Partition: 9    Leader: 1       Replicas: 2,1,0 Isr: 1,0

如您所见,存在三个复制副本,但replica2已崩溃,因此不再工作。

问题

如果我能恢复replica2,它会在创建的数据崩溃时同步吗?
如果无法恢复replica2,如何向本主题添加新代理并使其复制副本群集中的所有数据?
提前谢谢!

izj3ouym

izj3ouym1#

如果我能恢复replica2,它会在创建的数据崩溃时同步吗?
正如您在评论中提到的,在您的集群中, replication factor = 2 以及 acks = 1 . 假设崩溃的节点是node2。
有两种情况:
场景1:没有主题划分,你的节点2被选为领导者。一切就绪,数据不会丢失。一旦该节点返回,主题分区负责人就会将丢失的数据推送到节点2。
场景2:假设有一个主题分区选择崩溃的节点作为它的领导者。如果是这样,集群将选择另一个节点中的一个作为主题分区的领导者。当node2返回并且其他节点正常工作时,新的领导者将数据推送到node2以维护配置 replication factor = 3 .
如果无法恢复replica2,如何向本主题添加新代理并使其复制副本群集中的所有数据?
一旦崩溃的节点加入集群,集群就能够恢复副本。

相关问题