Apache kafka 其中一名卡夫卡经纪人已经崩溃,如何恢复?
我想我对卡夫卡集群是如何工作的感到困惑和不清楚 当前结构: 通过从下载,我制作了带有3台机器的kafka broker集群 其中一个主题是这样的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
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已崩溃,因此不再工作
问题
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
谢谢您的解释:)我明白了~