elasticsearch 是如何實現 master 選舉的 ?


想了解 ES 集群的底層原理,不再只關注業務層面了。

前置前提:

1、只有候選主節點(master:true)的節點才能成為主節點。

2、最小主節點數(min_master_nodes)的目的是防止腦裂。

這個我看了各種網上分析的版本和源碼分析的書籍,雲里霧里。

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

則返回 null。選舉流程大致描述如下:

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

discovery.zen.minimum_master_nodes;

第二步:比較:先判定是否具備 master 資格,具備候選主節點資格的優先返回;

若兩節點都為候選主節點,則 id 小的值會主節點。注意這里的 id 為 string 類型。

題外話:獲取節點 id 的方法。

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

2ip

port heapPercent heapMax id

name


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM