想了解 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

相关文章:

  • 2021-11-26
  • 2022-12-23
  • 2021-05-17
  • 2022-01-13
  • 2022-01-26
  • 2022-12-23
  • 2021-06-13
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-10-04
  • 2021-06-07
  • 2021-11-24
  • 2021-04-27
  • 2022-01-08
相关资源
相似解决方案