Elasticsearch脑裂问题及相关参数

什么是脑裂?

Elasticsearch脑裂问题及相关参数_第1张图片

假设集群中有上图中的三个节点,其中Node0为master节点,Node1与Node2为Data节点。由于某种故障Node1、Node2无法感知到Master节点,而Node1与Node2可以相互感知,这时Node1与Node2就会认为master节点出现故障,需要重新选举master节点。选举完成后会有一个新的Master节点,原有的集群会分裂成两个集群。

怎样防止脑裂?

修改参数discovery.zen.minimum_master_nodes可有效的减少脑裂发生的几率。

该参数意思是当集群出现故障,需要重新选举master节点时,节点数要大于等于该数才能开始选举。

官方给出的配置建议是 总结点数 / 2 + 1 ,如上图中集群的三个节点应将该参数设置成2。当假设中的情况发生时,Node1与Node2会重新选举master节点,而Node0由于无法获取其他节点响应,候选节点不够而无法担任Master节点。

 

如果集群中只有两个节点则无法避免脑裂,discovery.zen.minimum_master_nodes配置为2,则任一节点故障都无法重新选举Master。

 

你可能感兴趣的:(Elasticsearch)