一、問題引出
ES5.X節點類型多了ingest節點類型。
針對3個節點、5個節點或更多節點的集羣,如何配置節點角色才能使得系統性能最優呢? html
二、ES2.X及以前版本節點角色概述node
三、ES5.X節點角色清單elasticsearch
因爲其餘幾種類型節點和用途都很好理解,無非主節點、數據節點、路由節點。ide
Ingest的用途:
1)Ingest節點和集羣中的其餘節點同樣,可是它可以建立多個處理器管道,用以修改傳入文檔。相似 最經常使用的Logstash過濾器已被實現爲處理器。性能
2)Ingest節點 可用於執行常見的數據轉換和豐富。 處理器配置爲管道。 在寫入時,Ingest Node有20個內置處理器,例如grok,date,gsub,小寫/大寫,刪除和重命名等。優化
3)在批量請求或索引操做以前,Ingest節點攔截請求,並對文檔進行處理。
這樣的處理器的一個例子能夠是日期處理器,其用於解析字段中的日期。
另外一個例子是轉換處理器,它將字段值轉換爲目標類型,例如將字符串轉換爲整數。ui
四、ES5.X節點組合類型有多種類型,如何設置?
Elasticsearch的員工 Christian_Dahlqvist解讀以下:
一個節點的缺省配置是:主節點+數據節點兩屬性爲一身。對於3-5個節點的小集羣來說,一般讓全部節點存儲數據和具備得到主節點的資格。你能夠將任何請求發送給任何節點,而且因爲全部節點都具備集羣狀態的副本,它們知道如何路由請求。翻譯
一般只有較大的集羣才能開始分離專用主節點、數據節點。 對於許多用戶場景,路由節點根本不必定是必需的。htm
專用協調節點(也稱爲client節點或路由節點)從數據節點中消除了聚合/查詢的請求解析和最終階段,並容許他們專一於處理數據。 在多大程度上這對集羣有好處將因狀況而異。 一般我會說,在查詢大量使用狀況下路由節點更常見。blog
五、ES5.X集羣中如何設置節點角色
對於3個節點、5個節點甚至更多節點角色的配置,Elasticsearch官網、國內外論壇、博客都沒有明確的定義。
開發實戰中,個人配置以下(僅供參考討論)
注意:以上截圖中的英文都改成小寫。
個人思考以下:
1)對於Ingest節點,若是咱們沒有格式轉換、類型轉換等需求,直接設置爲false。
2)3-5個節點屬於輕量級集羣,要保證主節點個數知足((節點數/2)+1)。
3)輕量級集羣,節點的多重屬性如:Master&Data設置爲同一個節點能夠理解的。
4)若是進一步優化,5節點能夠將Master和Data再分離,取消client節點。
六、小結
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 (國內的哥們思考過,但我認爲不徹底對)