Master节点
Master节点的主要职责是和集群操作相关的内容,例如创建或删除索引、跟踪哪些节点是集群的一部分,并决定哪些分片分配给相关的节点。
稳定的主节点对集群的健康是非常重要的。默认情况下任何一个集群中的节点都有可能被选为主节点。
索引数据和搜索查询等操作会占用大量的CPU、内存、IO资源,为了确保一个集群的稳定,分离主节点和数据节点是一个比较好的选择。
因此在配置中应该配置如下:
node.master: true
node.data: false
脑裂现象
为什么会产生脑裂?
假如我们有一个集群,有3个主节点,当网络发生故障的时候,有可能其中一个节点不能和其他节点进行通信了。这时,当discoveray.zen.minimum_master_node
设置为1时,就会分成两个小的独立集群,出现脑裂现象。
当网络恢复的时候,就会出现数据错误或者数据丢失的情况。
防止脑裂:当discoveray.zen.minimum_master_node
设置为2时,一个网络中有两个主节点,可以继续工作,另一部分,由于只有一个主节点,则不会形成一个独立的集群,这时当网络恢复,节点又会重新加入集群。
discoveray.zen.minimum_master_node
的设计原则是:(master_eligible_node / 2) + 1
。