Nic*_*ury 4 configuration elasticsearch
假设我们有两个ElasticSearch服务器A和B,它们都可以成为主服务器.假设A是主人.还假设minimum_master_nodes属性也设置为1.
如果服务器A(主服务器)由于某种原因崩溃,则B成为主服务器.当A再次启动并运行并加入群集时,它是否会再次作为主服务器加入?我不明白为什么会出现裂脑.如果B成为主,然后A重新加入集群,那么如果B成为主人,为什么A也会成为主人?
任何时候,群集中只有一个主节点.如果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,则如果一个节点离开或关闭,则群集将变为红色且不可操作.这就是为什么你应该总是运行一个奇数(大于一个,显而易见的原因)符合主节点的节点.
这是一篇很棒的文章,其中详细介绍了裂脑情况:http://blog.trifork.com/2013/10/24/how-to-avoid-the-split-brain-problem-in-elasticsearch/
| 归档时间: |
|
| 查看次数: |
2454 次 |
| 最近记录: |