Elasticsearch 的分片分配(Shard Allocation)是将索引的分片(包括主分片和副本分片)分配给集群中节点的过程。这个过程由 Master 节点 负责执行。 分片分配的目标是:负载均衡、高可用性(避免单点故障)以及遵守用户定义的规则。 以下是 Elasticsearch 分片分配策略的核心机制、触发场景及关键配置详解: --- 1. 什么时候触发分片分配? 分片分配通常在以下几种场景下触发: 1. 索引创建时:Master 节点决定主分片放在哪些节点上。 2. 节点加入集群时:为了平衡负载,Master 可能会将部分分片从现有节点移动到新节点。 3. 节点离开集群(或故障)时: Master 会将丢失的主分片对应的副本分片提升为主分片。 Master 会重新分配缺失的副本分片到其他健康节点,以恢复副本数量。 4. 手动执行 Reroute:管理员通过 API 强制移动分片。 5. 磁盘空间达到阈值:当节点磁盘不足时,ES 会尝试移走分片。 6. 更新副本数:增加 时,需要分配新的副本。 --- 2. 核心分配原则(Allocation Deciders) E...