Apache kafka 其中一名卡夫卡经纪人已经崩溃,如何恢复?

Apache kafka 其中一名卡夫卡经纪人已经崩溃,如何恢复?,apache-kafka,Apache Kafka,我想我对卡夫卡集群是如何工作的感到困惑和不清楚 当前结构: 通过从下载,我制作了带有3台机器的kafka broker集群 其中一个主题是这样的 ubuntu@kafka1:~/.kafka$ bin/kafka-topics.sh --describe --zookeeper localhost:11111 --topic multi_partitions Topic:multi_partitions PartitionCount:10 ReplicationFactor

我想我对卡夫卡集群是如何工作的感到困惑和不清楚

当前结构: 通过从下载,我制作了带有3台机器的kafka broker集群

其中一个主题是这样的

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,我如何向本主题添加新代理,并使其复制副本群集中的所有数据

  • 如果我可以恢复replica2,它是否会在数据崩溃时同步

    正如您在评论中提到的,在您的集群中,
    replication factor=2
    acks=1
    。假设崩溃的节点是node2

    有两种情况:

    场景1:没有主题分区选择您的节点2作为领导者。一切就绪,数据不会丢失。一旦该节点返回,主题分区负责人就会将丢失的数据推送到节点2

    场景2:假设有一个主题分区将崩溃的节点选为其领导者。如果是这种情况,集群将选择另一个节点中的一个作为主题分区的领导者。当node2返回并且每隔一个节点工作正常时,新的领导者将数据推送到node2以保持配置
    复制因子=3

    如果我无法恢复replica2,如何在此主题中添加新代理 并使其复制副本群集中的所有数据


    一旦崩溃的节点加入群集,群集就能够恢复副本。

    您的
    复制系数是多少?
    min.insync.replications
    ,以及
    acks
    ?@谢谢
    replication factor=3
    ,而
    min.insync.replications
    并不重要,因为我使用了
    acks=1
    谢谢您的解释:)我明白了~