discovery.zen.minimum_master_nodes深度解析

本片文章转载地址:https://blog.csdn.net/zuodaoyong/article/details/104719508

discovery.zen.minimum_master_nodes对集群的稳定性至关重要,防止脑裂的出现。

脑裂:
如果网络的故障导致一个集群被划分成两片,每片都有多个node,以及一个master。因为master是维护集群状态以及shard的分配。如果出现了两个master,可能导致数据破损。

discovery.zen.minimum_master_nodes的作用是:只有足够的master候选节点时,才可以选举出一个master。该参数必须设置为集群中master候选节点的quorum数量。

quorum = master候选节点数量/2 + 1
举例:

  1. 如果有10个节点,都是data node,也是master候选节点。则quorum = 10/2 + 1 = 6
  2. 如果有3个master候选节点,100个数据节点,则quorum = 3/2 + 1 = 2
  3. 如果有2个节点,都是data node,也是master候选节点。则quorum = 2/2 + 1 = 2(有问题):
    如果其中一个节点挂了,那么master的候选节点只有一个,无法满足quorum数量。即无法选举出master。此时只能将quorum设置成1,但是设置成1有可能出现脑裂。

总结:
一般ES集群的节点至少要有3个,quorum设置为2

举例说明quorum是如何防止脑裂的:
假设集群3个节点有一个节点与其他节点无法通信

  1. 如果master是单独的节点,另外2个节点是master候选节点。那么此时单独的master节点因为没有指定数量的候选master node在自己当前所在的集群里,因此会取消当前的master角色,尝试重新选举(无法选举成功)
    另外一个网络区域内的node因为无法连接到master,就会重新发起选举,有两个候选节点,满足quorum,成功选举出一个master。
  2. 如果master和node在一个网络区域(A),另一个node单独在一个网络区域(B)。
    B区域只有一个node,因为连不上master,会尝试发起选举,但不满足quorum,无法选举。
    A区域mater继续工作,当前网络页满足quorum,不发起选举。

discovery.zen.minimum_master_nodes除了在配置文件设置,也可以动态设置

PUT /_cluster/settings
{
   "persistent":{
      "discovery.zen.minimum_master_nodes":2
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值