elasticsearch 是如何實現 master 選舉的 ?

面試官想了解 ES 集羣的底層原理再也不只關注業務層面了node

前置前提面試

一、只有候選主節點(master:true)的節點才能成爲主節點elasticsearch

二、最小主節點數(min_master_nodes)的目的是防止腦裂源碼分析

這個我看了各類網上分析的版本和源碼分析的書籍雲裏霧裏spa

覈對了一下代碼核心入口爲 findMaster,選擇主節點成功返回對應 Master, ip

則返回 null。選舉流程大體描述以下源碼

第一步確認候選主節點數達標,elasticsearch.yml 設置的值 string

discovery.zen.minimum_master_nodes; ast

第二步比較先斷定是否具有 master 資格具有候選主節點資格的優先返回集羣

若兩節點都爲候選主節點 id 小的值會主節點注意這裏的 id  string 類型

題外話獲取節點 id 的方法

1GET /_cat/nodes?v&h=ip,port,heapPercent,heapMax,id,name

2ip

port heapPercent heapMax id

name

相關文章
相關標籤/搜索