ES 创建索引(index)过程如下:
Primary Shard 主分片;Primary Shard 主分片创建索引;Relicasedit Shard 副本分片创建索引;在这种架构中,索引数据全部位于 Shard 中,Primary Shard 和 Relicasedit Shard 各存储一份。
当某个 Relica Shard 或 Primary Shard 丢失(比如机器宕机,网络中断等)时,需要将丢失的 Shard 在其他 Node 中恢复回来,这时候就需要从其他 Relica Shard 全量拷贝这个 Shard 的所有数据到新Node 上构造新 Shard。
这个拷贝过程需要一段时间,这段时间内只能由剩余主副本来承载流量,在恢复完成之前,整个系统会处于一个比较危险的状态,直到 failover 结束。
ElasticSearch 主要的节点种类在逻辑上分类如下:
Master Node:主节点
一个ES节点启动后,使用 Zen Discovery 机制去寻找集群中的其他节点,并与之建立连接。集群中从候选主节点中选举出一个主节点。主节点负责创建索引,删除索引,分配分片,追踪集群中其他节点的状态等工作。
# 设置节点为候选主节点,不作为数据节点
node.master = true
node.data = false