? ? ? ? 引用ES官網(wǎng)的一段話:
? ? ? ? 簡單說就是可以給ES集群中的節(jié)點分配不同角色,每種角色干的活都不一樣。
Master
? ? ? ? 主要負(fù)責(zé)集群中索引的創(chuàng)建销凑、刪除以及數(shù)據(jù)的Rebalance等操作。Master不負(fù)責(zé)數(shù)據(jù)的索引和檢索,所以負(fù)載較輕隧膏。當(dāng)Master節(jié)點失聯(lián)或者掛掉的時候,ES集群會自動從其他Master節(jié)點選舉出一個Leader嚷那。為了防止腦裂胞枕,常常設(shè)置參數(shù)為discovery.zen.minimum_master_nodes=N/2+1,其中N為集群中Master節(jié)點的個數(shù)魏宽。建議集群中Master節(jié)點的個數(shù)為奇數(shù)個腐泻,如3個或者5個。
? ? ????設(shè)置一個幾點為Master節(jié)點的方式如下:
????????node.master: true
????????node.data: false?
????????node.ingest: false?
????????search.remote.connect: false
Data Node
? ? ? ? 主要負(fù)責(zé)集群中數(shù)據(jù)的索引和檢索队询,一般壓力比較大派桩。建議和Master節(jié)點分開,避免因為Data Node節(jié)點出問題影響到Master節(jié)點娘摔。
? ??????設(shè)置一個幾點為Data Node節(jié)點的方式如下:
????????node.master: false
????????node.data: true
????????node.ingest: false
????????search.remote.connect: false
Coordinating Node
? ? ? ? 對于協(xié)調(diào)節(jié)點窄坦,個人覺得官網(wǎng)說的很清楚,很簡練凳寺。
Ingest Node
? ? ? ? Ingest node專門對索引的文檔做預(yù)處理鸭津,實際中不常用,除非文檔在索引之前有大量的預(yù)處理工作需要做肠缨。Ingest node設(shè)置如下:
node.master: false node.master: false ????????node.master: false
????????node.data: false
????????node.ingest: true
????????search.remote.connect: false
Tribe Node
? ??????Tribe Node主要用于跨級群透明訪問逆趋。但是官方已經(jīng)不建議使用了,在5.4.0版本以后已經(jīng)廢棄掉了晒奕,在7.0的版本中將移除該功能闻书。在5.5版本以后建議使用Cross-cluster search替代Tribe Node。
總結(jié):
? ? ? ? 小集群可以不考慮結(jié)群節(jié)點的角色劃分脑慧,大規(guī)模ES集群建議將Master Node魄眉、Data Node和Coordinating Node獨立出來,每個節(jié)點各司其職闷袒。