ES5.X节点类型多了ingest节点类型。
针对3个节点、5个节点或更多节点的集群,如何配置节点角色才能使得系统性能最优呢? html
因为其余几种类型节点和用途都很好理解,无非主节点、数据节点、路由节点。node
Ingest的用途:
1)Ingest节点和集群中的其余节点同样,可是它可以建立多个处理器管道,用以修改传入文档。相似 最经常使用的Logstash过滤器已被实现为处理器。elasticsearch
2)Ingest节点 可用于执行常见的数据转换和丰富。 处理器配置为造成管道。 在写入时,Ingest Node有20个内置处理器,例如grok,date,gsub,小写/大写,删除和重命名。ide
3)在批量请求或索引操做以前,Ingest节点拦截请求,并对文档进行处理。
这样的处理器的一个例子能够是日期处理器,其用于解析字段中的日期。
另外一个例子是转换处理器,它将字段值转换为目标类型,例如将字符串转换为整数。性能
Elasticsearch的员工 Christian_Dahlqvist解读以下:优化
一个节点的缺省配置是:主节点+数据节点两属性为一身。对于3-5个节点的小集群来说,一般让全部节点存储数据和具备得到主节点的资格。你能够将任何请求发送给任何节点,而且因为全部节点都具备集群状态的副本,它们知道如何路由请求。ui
一般只有较大的集群才能开始分离专用主节点、数据节点。 对于许多用户场景,路由节点根本不必定是必需的。es5
专用协调节点(也称为client节点或路由节点)从数据节点中消除了聚合/查询的请求解析和最终阶段,并容许他们专一于处理数据。
在多大程度上这对集群有好处将因状况而异。 一般我会说,在查询大量使用状况下路由节点更常见。.net
对于3个节点、5个节点甚至更多节点角色的配置,Elasticsearch官网、国内外论坛、博客都没有明确的定义。
个人思考以下:
1)对于Ingest节点,若是咱们没有格式转换、类型转换等需求,直接设置为false。
2)3-5个节点属于轻量级集群,要保证主节点个数知足((节点数/2)+1)。
3)轻量级集群,节点的多重属性如:Master&Data设置为同一个节点能够理解的。
4)若是进一步优化,5节点能够将Master和Data再分离。翻译
1)Elasticsearch博大精深,尤为新的5.X特性比较多,须要进一步深刻研究;
2)集群的配置还有赖于进一步事件总结,再好的理论部署实践都是“花瓶”;
3)貌似图示划分了这么细、写了那么多,以官网为基准,也顺带调研了N多文档,但对Ingest节点的做用依然理解的不够深。但愿你们评论探讨下。
参考:
[1]https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html#data-node
(5.x官网)
[2] https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-node.html
(2.x官网)
[3] https://discuss.elastic.co/t/master-and-client-node-role-clarifications/104036/2
(ES员工回复)
[4] https://blog.trifork.com/2017/02/02/elasticsearch-ingest-node/
(ingest节点使用详解)
[5] https://wenchao.ren/archives/375
(官网原文翻译)
[6] http://www.cnblogs.com/liang1101/p/7284205.html (国内的哥们思考过,但我认为不彻底对)