Elasticsearch 集群通过主节点(Master Node)管理元数据与分片分配,网络分区可能导致脑裂,出现多个主节点。
一、脑裂成因
当集群被网络分区为两部分,若两部分都能选出主节点,将导致元数据不一致与数据丢失。
二、7.x 后的改进
Elasticsearch 7.0 起引入基于 Raft 的集群协调子系统,移除了 discovery.zen.minimum_master_nodes 配置,由系统自动维护投票配置。
yaml
# 推荐配置:专用主节点
node.roles: [ master ]
discovery.seed_hosts: ["master1", "master2", "master3"]
cluster.initial_master_nodes: ["master1", "master2", "master3"]生产环境应部署奇数个(至少 3 个)专用主节点,避免主节点同时承担数据角色,确保选举稳定与故障快速恢复。