Elasticsearch 的高可用性主要通过分布式架构、数据冗余和自动故障转移机制实现,具体原理如下:
一、核心机制 分片与副本机制
主分片(Primary Shard):存储原始数据,负责写入操作。 副本分片(Replica Shard):主分片的完整镜像,提供查询负载均衡和故障容错。 作用: 数据冗余:副本分片确保单节点故障时数据不丢失。 负载均衡:查询请求可分发到主分片或任意副本分片,减轻单点压力。 分布式节点架构
多节点部署:数据节点、专用主节点协调分布在多个物理节点(或可用区)。 跨可用区容灾: 可用区部署时,专用主节点分散在不同可用区,任一可用区故障不影响集群选举。 数据节点均衡分布,结合 VIP 负载均衡自动屏蔽异常节点。 二、故障自动恢复流程 故障检测 节点间定期心跳检测(默认 1s 间隔,超时 30s 判定失效)。 分片重分配 主分片故障时,副本分片自动晋升为新主分片。 新副本重建:Master 节点在健康节点上创建缺失的副本分片。 Master 节点选举 基于 Raft 协议选举新 Master,避免脑裂(7.x+ 版本)。 三、关键优化策略 分片配置原则 分片大小建议 10–50GB,避免过大影响性能。 副本数 ≥1,保障基础容错能力;高查询场景可增加副本提升读取吞吐量。 跨集群复制(CCR) 支持跨集群实时同步数据,实现地域级容灾与低延迟查询。 四、状态监控与自愈 集群健康状态: Green:所有主/副本分片正常;Yellow:副本缺失(主分片正常);Red:主分片异常。 增量数据同步:节点恢复后仅同步故障期间的增量数据(通过事务日志 Translog)。