ES节点类型
Master节点
配置
node.master: true
node.data: false
默认情况下任何一个集群中的节点都有可能被选为主节点
Master节点主要职责
创建或删除索引,跟踪哪些节点是集群的一部分,并决定哪些分片分配给相关的节点。
稳定的主节点对集群的健康是非常重要的,索引数据和搜索查询等操作会占用大量的cpu,内存,io资源,为了确保一个集群的稳定,分离主节点和数据节点通常是一个比较好的选择。
Data节点
数据节点由于要存储大量的索引数据,并进行增删改查,一般对机器的配置要求较高,尽量配置多核CPU,大内存,SDS硬盘。
配置
node.master: false
node.data: true
Data节点主要职责
存储索引数据
对文档进行增删改查,聚合操作
Client节点
配置
node.master: false
node.data: false
Client节点主要职责
处理路由和搜索请求
可以将该节点理解为一个智能的负载均衡器,它会将搜索请求自动路由到相关节点上去,一般在集群数量比较大的情况下,我们会独立部署客户端节点,它对于协调主节点和数据节点很有帮助。
Tribe节点
Tribe节点一般用户多集群中的跨集群访问,但是官方已经不建议使用了,在5.4.0版本以后已经废弃掉了,在7.0的版本中将移除该功能。
Ingest节点
配置
node.ingest: true
node.master: false
node.data: false
Ingest node 一般用于对索引的文档做预处理,实际中并不常用,除非文档在索引之前有大量的预处理工作需要做在批量请求或索引操作之前,比如日期转换,数据类型转换等。