ElasticSearch Node Role
Cluster Type
传统的分布式集群有主主模式,比如横向扩容的微服务,每一台都是主的,通过负载均衡去进行调用,还有主从模式,比如说master和slave,我们的ElasticSearch使用的就是这样的架构模式.
Node Type
Master Node
预选主节点,和很多分布式服务不一样,他只是有可能成为主节点的意思,不一定就是主节点,只是作为一个候选人,一般就是用来管理元数据以及一些其他节点的信息,负责集群层面的相关操作,管理对应的集群变更,注意,这里配置的数量一定要满足对应的公式(N/2+1 N为候选master节点数),否则有可能会出现脑裂的情况。
该文中不详细赘述节点搭配,具体集群节点搭配可以查看这篇文章 ~
https://developer.aliyun.com/article/1174655?spm=a2c6h.13262185.profile.31.1b056131XvtTNm
Data Node
负责保存数据,执行CRUD,搜索,聚合操作,其实主要干活的节点就是数据节点,他们是节点当中的顶梁柱,如果分配少了,那么干活效率也肯定会降低,分配该节点类型的机器配置肯定要相对较高。
Ingest Node
这是从5.0版本之后引入的概念,当使用processors(处理器)和pipeline(管道)的时候,我们需要新增这个节点类型,来让上述操作生效,processors和pipeline可以理解为Java当中的拦截器,当我们要进行插入或者查询的时候对数据进行处理,可以在不改变代码的基础上由ES帮忙完成这部分的工作,甚至我们可以在里面添加自定义的script脚本来丰富我们的操作。
Coordinating Node
每个节点其实都默认为协调节点,但是我们可以单独设置为协调节点,它可以帮助我们做路由转发,传递消息,减少主节点和数据节点负担。但是添加过多的协调节点,将增加整个集群负担(因为需要将集群状态同步到每个协调节点)。