只須要配置相同的cluste.name就能將節點加入同一集羣,這是經過ES的發現機制來實現的。 ES目前主要推薦的自動發現機制,有以下幾種:node
其中,Zen Discovery 是 ES 默認內建發現機制。它提供單播和多播的發現方式。bash
也叫組播,指一個節點能夠向多臺機器發送請求。ES 不建議生產環境使用這種方式,對於一個大規模的集羣,組播會產生大量沒必要要的通訊。網絡
discovery.zen.ping.multicast.address:(用於通訊的網絡接口)
discovery.zen.ping.multicast.port:(通訊端口)
discovery.zen.ping.multicast.group:(組播消息發送的地址)
discovery.zen.ping.multicast.buffer_size:(緩衝區大小)
discovery.zen.ping.multicast.enable:(是否開啓組播,默認爲true,使用單播,應該關閉組播,設爲false)
複製代碼
一個節點加入一個現有集羣,或者組件一個新的集羣時,發送請求到一臺主機。當一個節點聯繫到單播列表中的成員時,它就會獲得整個集羣全部節點的狀態,而後它會聯繫 master 節點,並加入集羣。併發
discovery.zen.ping.unicast.hosts:(集羣初始節點列表)
discovery.zen.ping.unicast.concurrent_connections:(單播發現使用的最大併發連接數,默認爲10)
複製代碼
假設擁有一個10個節點組成的集羣,有3個節點從集羣中 斷開鏈接,因爲發現機制,這3個節點可能會組成一個新的集羣,這樣就產生了兩個同名的集羣,這就是腦分裂(split-brain)。 爲了不這種分裂的出現,能夠設置如下屬性:spa
discovery.zen.minium_master_nodes:6
複製代碼
定義組件集羣至少須要相互鏈接的候選主節點數量。這時斷開的3個節點因爲小於6,不能組成新的集羣。插件