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

相关文章
相关标签/搜索