- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我们有两台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/
假设我们有两台ElasticSearch服务器A和B,都可以成为master。还假设 A 是 master。还假设 minimum_master_nodes 属性也设置为 1。 如果服务器 A(主服务
本文重点分享Zookeeper脑裂问题的处理办法。ZooKeeper是用来协调(同步)分布式进程的服务,提供了一个简单高性能的协调内核,用户可以在此之上构建更多复杂的分布式协调功能。 脑裂通常会出
我是一名优秀的程序员,十分优秀!