gpt4 book ai didi

ELASTICSEARCH:脑裂

转载 作者:行者123 更新时间:2023-11-29 02:51:23 25 4
gpt4 key购买 nike

假设我们有两台ElasticSearch服务器A和B,都可以成为master。还假设 A 是 master。还假设 minimum_master_nodes 属性也设置为 1。

如果服务器 A(主服务器)由于某种原因崩溃,B 将成为主服务器。当 A 再次启动并运行并加入集群时,它会再次作为 master 加入吗?我不明白为什么会发生这种裂脑。如果 B 成为 master,然后 A 重新加入集群,为什么 B 成为 master 后 A 也会成为 master?

最佳答案

在任何时候,集群中都只有一个主节点。如果 A 离开或崩溃,B 将成为 master。当 A 恢复时,它会简单地作为一个新的 master-eligible 节点加入集群,并会等到节点 B 崩溃才能成为新的 master。

如果 A 和 B 之间的网络短暂中断,就会发生脑裂情况。当这种情况发生时,A 和 B 完全活着并且认为它们在集群中是孤立的,因此由于 A 不再看到 B,A 将选举自己作为主节点。那时,您的集群中有两个 master,这就是裂脑情况。

为了防止这种情况,您应该拥有奇数个符合主节点资格的节点,并确保将 minimum_master_nodes 设置为 2(符合主节点资格的节点数/2 + 1)。在这种情况下,只有存在至少两个合格的主节点并且可以相互通信以达到法定人数时,才有可能选出新的主节点。

运行具有两个符合主节点资格的节点的集群会带来麻烦,因为如果您设置 minimum_master_nodes: 1,您可能会遇到我上面描述的裂脑情况。如果您设置 minimum_master_nodes: 2,那么如果一个节点离开或关闭,集群将变为红色且无法运行。这就是为什么您应该始终运行奇数个(由于显而易见的原因大于一个)符合主节点资格的节点。

这是一篇很棒的文章,其中包含更多关于脑裂情况的详细信息:http://blog.trifork.com/2013/10/24/how-to-avoid-the-split-brain-problem-in-elasticsearch/

关于ELASTICSEARCH:脑裂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39489387/

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