elasticsearch 集群架构
*************************************
节点类型
master节点:负责索引的创建与删除、分片的分配、追踪集群中节点的状态;
node.master: true
node.data: false
说明:如果将参数node.data设置为true,则此时节点即为候选主节点,也为存储数据;
为防止脑裂,需将参数discovery.zen.minimum_master_nodes设置为 num(master)/2+1
data节点:存储数据
node.master: false
node.data: true
协调节点:接受客户端的请求,转发到对应的分片上进行处理,任何节点都可以充当协调节点的角色
node.master: false
node.data: false
说明:设置专门的协调节点主要是提升集群的并发性能
*************************************
索引写入流程
任意节点(协调节点)接到数据写入请求,协调节点将请求转发到对应的主分片;
主分片写入的同时将数据转发到对应的副本分片,副本分片写入成功后向主分片返回写入成功状态;
协调节点向客户端返回写入成功状态
*************************************
索引查询流程
如果查询请求中含有路由字段,协调节点直接将请求转发到主分片或者对应的副本分片,随后将查询结果返回给客户端;
如果查询请求中不含有路由字段,协调节点需要将查询请求转发给所有主分片或者对应的副本分片,协调节点将请求汇总处理后返回给客户端