我有两个专用于ES(2.2.0)的Windows服务器(Windows Server 2012R2,每个服务器上有128GB内存)。如果我在每台服务器上都有一个节点,并且这两个节点组成一个集群。什么是正确的价值
discovery.zen.minimum_master_nodes
Run Code Online (Sandbox Code Playgroud)
我在elasticsearch.yml中阅读了此一般规则:
通过配置大多数节点(总节点数/ 2 + 1)来防止“分裂大脑”:
我看到了这样的线程:
对于群集中具有两个节点的专用计算机,ES_HEAP_SIZE的正确值
有一个回答说:
如Elasticsearch飞行前检查清单中所述,您可以在N> 2个节点的集群上将Discovery.zen.minimum_master_nodes设置为至少(N / 2)+1。
请注意“ N > 2”。在我的情况下,什么是正确的值?
N 是可以作为群集一部分的ES节点(不是物理机,而是ES进程)的数量。
在您的情况下,在两台计算机上有一个节点,N = 2(请注意,此处为4 ),因此该公式N/2 + 1得出2,这意味着如果您想防止出现脑裂情况,则您的两个节点都必须有资格作为主节点。
如果将该值设置为1(这是默认值!),并且遇到网络问题,并且两个节点都可以在短暂的时间内看到对方,则每个节点都将认为它是群集中的一个,并且两个节点都将自己选举为主。您最终遇到两个主控者的情况,这不是一件好事。而如果将该值设置为2并遇到网络问题,则当前的主节点将保持选中状态,而第二个节点将永远不会决定将自己选为新的主节点。无论何时备份网络,第二个节点都将重新加入群集并继续为请求服务。
理想的拓扑结构是具有3个专用的主节点(即with master: true和data:false)并将其discovery.zen.minimum_master_nodes设置为2。这样,无论群集中数据节点的数量如何,您都无需更改设置。
因此,N > 2约束确实应该是N >= 2,但是我想这是暗含的,因为否则,您将为脑裂情况创造沃土。
| 归档时间: |
|
| 查看次数: |
4328 次 |
| 最近记录: |