首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ELASTICSEARCH:分裂的大脑

ELASTICSEARCH:分裂的大脑
EN

Stack Overflow用户
提问于 2016-09-14 19:33:21
回答 1查看 5.4K关注 0票数 4

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-14 19:41:50

在任何时候,集群中都只有一个主节点。如果A离开或崩溃,B将成为主节点。当A恢复时,它将简单地作为新的符合主节点条件的节点加入集群,并将等待节点B崩溃,以便成为新的主节点。

如果A和B之间的网络短暂中断,就会出现大脑分裂的情况。当这种情况发生时,A和B是完全活着的,并且认为它们在集群中是单独的,因此,由于A不再看到B,A将选择自己作为主服务器。在这一点上,你的集群中有两个主控,这就是大脑分裂的情况。

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

使用两个符合主机条件的节点运行集群是有麻烦的,因为如果您设置了minimum_master_nodes: 1,您可能会陷入我在上面描述的大脑分裂的情况。如果设置为minimum_master_nodes: 2,则当一个节点离开或关闭时,群集将变为红色且不可操作。这就是为什么您应该始终运行奇数个(由于明显的原因大于1)符合主节点条件的节点的原因。

这里有一篇很棒的文章,详细介绍了大脑分裂的情况:http://blog.trifork.com/2013/10/24/how-to-avoid-the-split-brain-problem-in-elasticsearch/

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39489387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档