Elasticsearch-节点&集群&分片&副本概念
Master-eligible nodes 和 Master Node
- 每个节点启动后,默认就是一个Master eligible节点(可以设置node.master:false)
- Master-eligible节点可以参加选主流程,成为Master节点
- 当第一个节点启动的时候,它会将自己选举成Master节点
- 每个节点上都保存了集群的状态,只有Master节点才能修改集群的状态信息
集群状态(Cluster State), 维护了一个集群中必要的信息
- 所有的节点信息
- 所有的索引和其相关的Mapping与Setting信息
- 分片的路由信息
Q:为什么不能任意节点都可以修改
A:会导致数据的不一致
Data Node 和 Coordinating Node
Data Node
可以保存数据的节点,叫做Data Node.负责保存分片数据
Coordinating Node
负责接受Client的请求,将请求分发到合适的节点,并把最终的结果汇总
每个节点默认都会起到Coordinating Node的职责
其他的节点类型
Hot & Warm Node
冷热节点-->不同硬件配置的Data Node,用来实现Hot & Warm 架构,降低集群部署的成本.
Machine Learming Node
负责跑机器学习的Job,用来做异常检测
配置节点类型
开发环境中一个节点可以承担多种角色
生产环境中,应该设置单一的角色节点(职责明确,更好的性能,不同节点配置不同硬件成本更可控)
分片(Primary Shard & Replica Shard)
主分片,用以解决数据水平扩展的问题.通过主分片,可以将数据分布到集群内的所有节点上
一个分片是一个运行的Lucene实例
主分片在索引创建时指定,后续不允许修改,除非Reindex
副本,用以解决数据高可用的问题.分片是主分片的拷贝
副本分片数,可以动态调整
增加副本数,还可以在一定程度上提高服务的可用性(读取的吞吐)