Elasticsearch 集群工作原理
官方说明
单机节点 ES 存在单点可用性和性能问题,可以实现Elasticsearch多机的集群解决
Elasticsearch 支持集群模式
-
能够提高Elasticsearch可用性,即使部分节点停止服务,整个集群依然可以正常服务
-
能够增大Elasticsearch的性能和容量,如内存、磁盘,使得Elasticsearch集群可以支持PB级的数据
ES 节点分类
Elasticsearch 集群的每个节点的角色有所不同,但都会保存集群状态Cluster State的相关的数据信息
-
节点信息:每个节点名称和地址
-
索引信息:所有索引的名称,配置,数据等
ES的节点有下面几种
-
Master 节点 ES集群中只有一个 Master 节点,用于控制和管理整个集群的操作 Master 节点负责增删索引,增删节点,分片shard的重新分配 Master 主要维护Cluster State,包括节点名称,节点连接地址,索引名称和配置信息等 Master 接受集群状态的变化并推送给所有其它节点,集群中各节点都有一份完整的集群状态信息,都由master node负责维护 Master 节点不需要涉及到文档级别的变更和搜索等操作 协调创建索引请求或查询请求,将请求分发到相关的node上。 当Cluster State有新数据产生后, Master 会将数据同步给其他 Node 节点
Master节点通过超过一半的节点投票选举产生的
可以设置node.master: true 指定为是否参与Master节点选举, 默认true
-
Data 节点 存储数据的节点即为 data 节点 当创建索引后,索引的数据会存储至某个数据节点 Data 节点消耗内存和磁盘IO的性能比较大 配置node.data: true, 就是Data节点,默认为 true,即默认所有节点都是 Data 节点类型<