gpt4 book ai didi

bigdata - 如果 kafka 的一个副本宕机以跟上复制因子,kafka 会创建一个新的追随者吗

转载 作者:行者123 更新时间:2023-12-01 00:48:48 25 4
gpt4 key购买 nike

以下是我的主题分区信息 xx_json_topic .这是一个具有三个节点的 Kafka 集群。

所有节点向上:

Topic: xx_json_topic    PartitionCount:4    ReplicationFactor:2    Configs:
Topic: xx_json_topic Partition: 0 Leader: 1 Replicas: 3,1 Isr: 3,1
Topic: xx_json_topic Partition: 1 Leader: 2 Replicas: 1,2 Isr: 2,1
Topic: xx_json_topic Partition: 2 Leader: 2 Replicas: 2,3 Isr: 2,3
Topic: xx_json_topic Partition: 3 Leader: 3 Replicas: 3,2 Isr: 2,3

此时..如果我关闭节点“node-1”..它看起来像下面:
Topic: xx_json_topic    PartitionCount:4    ReplicationFactor:2    Configs:
Topic: xx_json_topic Partition: 0 Leader: 3 Replicas: 3,1 Isr: 3
Topic: xx_json_topic Partition: 1 Leader: 2 Replicas: 1,2 Isr: 2
Topic: xx_json_topic Partition: 2 Leader: 2 Replicas: 2,3 Isr: 2,3
Topic: xx_json_topic Partition: 3 Leader: 3 Replicas: 3,2 Isr: 2,3

我的问题是..如果 kafka 知道 node-1 已关闭并且它需要维护复制因子,它不会使节点 3 成为分区 1 的副本 && 节点 2 成为分区 0 的副本然后创建节点-3 和 node-2 部分的 Isr ?

或者你认为卡夫卡没有 promise ......
如果复制因子为 2 ..这并不意味着数据将始终在至少 2 个节点中可用(---就像 Cassandra 中的一致性级别)。

最佳答案

您是正确的,这不是 Kafka 中处理复制因子的方式。当您为主题指定复制因子 2 时,该主题的分区将在 2 个代理上创建(并且集群 Controller 尝试将它们分散到集群中)。那个时候,一个人成为领导者,一个人成为跟随者。这并不能保证总是有两个分区副本,它只指定创建两个副本,如果所有副本都不存在,代理会通知您(通过underreplicated partitions count mbean)。

Kafka 不会对集群进行任何自动修复,但如果一个分区有多个副本,并且 leader 副本不可用,则其中一个 follower 将接管作为 leader。然而,当那个领导者回来时,它不会恢复领导(它成为一个追随者)。同样,集群不会创建新的副本。这可能是一项资源密集型操作,因为需要通过网络将大量数据移动到新副本。

虽然有执行自动领导者重新平衡的选项,但没有执行自动副本创建的等效选项。

关于bigdata - 如果 kafka 的一个副本宕机以跟上复制因子,kafka 会创建一个新的追随者吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32588784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com