具有3个节点的ElasticSearch可用性/分区容差

时间:2018-03-26 17:43:14

标签: elasticsearch nosql

我是ElasticSearch的新手,并尝试为3节点群集找出适当的设置,以便能够容忍丢失2个节点。

根据我的理解,设置将是:

  • DC1:2个节点
  • DC2:1节点
  • 分片:3
  • replicas:2
  • minimum_master_nodes:1

如果没有将minimum_master_nodes设置为1,如果DC1发生故障,DC2中的剩余节点将无法回复,这是否正确?

我正在安装的产品说它不建议将minimum_master_nodes设置为除法定数量以外的任何其他内容。

我想了解将minimum_master_nodes设置为1可能产生的副作用。还是有另一种方法可以容忍3节点集群中2个节点的丢失?

1 个答案:

答案 0 :(得分:0)

3个节点集群上不能有2个节点的容错损失。

你必须把minimum_master_nodes:1,但想象所有节点都失去了彼此的连接,它们都成了主人,这将带你去分裂大脑"写入一个节点的情况和数据不会转到其他节点。

要实现2个节点的容错,您需要至少5个节点,每个索引需要2个副本。在这种情况下,分片数量并不重要,但您可以将其更改为具有更好的负载平衡。

计算所需节点数量的公式:

total_nodes - lost_nodes > total_nodes/2
where total_nodes >0; lost_nodes >= 0; total_nodes > lost_nodes

换句话说,您应该始终有超过50%的节点处于活动状态以运行群集。如果你允许50%或更少的裂脑情况成为可能。