美文网首页
ES原理之选主流程

ES原理之选主流程

作者: 后来丶_a24d | 来源:发表于2020-01-19 17:38 被阅读0次

目录

  • 主从模式vs无主模式
  • ES选举算法
  • 流程

选主流程

主从模式 VS. 无主模式

分布式系统的集群方式大致可以分为主从模式(Master-Slave)和无主模式。

模式 代表组件 优点 缺点
主从模式 ES/HDFS/HBase 简化系统设计,Master作为权威节点,负责维护集群原信息。 Master节点存在单点故障,需要解决在被问题,并且集群规模会受限于Master节点的管理能力。
无主模式 Cassandra 分布式哈希表(DHT),支持每小时数千个节点的离开和加入。 集群没有master的概念,所有节点都是同样的角色,彻底避免了整个系统的单点问题导致的不稳定性。多个节点可能操作同一条数据,数据一致性上可能比较难以保证。

ES选举算法

常用的选举算法有比较简单的Bully算法和复杂而强大的Paxos算法。

Bully算法

每个节点有一个唯一ID,然后对集群中所有的节点ID进行排序,选取其中最小的ID所属的节点作为Master。
Bully算法的问题: 假设当前Master因为负载过重而假死,然后ID第二大的被选举为新的Master,这时旧的Master恢复然后又被选举为Master然后又会因为负载过重而假死......

Paxos算法

Paxos实现起来非常复杂,但非常强大,尤其在什么时机,以及如何进行选举方面的灵活性比简单的Bully算法有很大的优势,因为在现实生活中,存在比网络链接异常更多的故障模式。
ES使用的是Bully算法,并对其做了一些优化:

  • 每个节点结算最小的ID,把它选举为临时Master,然后对该master进行投票;
  • 每个节点收集票数,当票数大于指定的法定个数时,成为Master,然后对加入的节点进行集群信息广播。

流程

  1. ping所有节点,并获取PingResponse返回结果(findMaster)
  2. 过滤出具有Master资格的节点(filterPingResponses)
  3. 选出临时Master。根据PingResponse结果构建两个列表:activeMasters和masterCandidates。
  • 如果activeMasters非空,则从activeMasters中选择最合适的作为Master;
  • 如果activeMasters为空,则从masterCandidates中选举,结果可能选举成功,也可能选举失败。
  1. 判断临时Master是否是本节点。
  • 如果临时Master是本节点:则等待其他节点选我,默认30秒超时,成功的话就发布新的clusterState。(当选总统候选人,只等选票过半了)
  • 如果临时Master是其他节点:则不再接受其他节点的join请求,并向Master节点发送加入请求。(没资格选举,就只能送人头了)

参考文章

相关文章

  • ES原理之选主流程

    目录 主从模式vs无主模式 ES选举算法 流程 选主流程 主从模式 VS. 无主模式 分布式系统的集群方式大致可以...

  • es源码笔记-7.x 选主流程

    Discovery模块负责发现集群中的节点,以及选择主节点。ES支持多种不同Discovery类型选择,内置的实现...

  • Zookeeper选主流程

    http://www.thinkyixia.com/2017/11/04/zookeeper-6/在Zookeep...

  • 【es】ElasticSearch 7.x前后选主流程解析

    es 7.6 集群节点配置文件https://blog.csdn.net/ctypyb2002/article/d...

  • 搜索引擎

    es的分布式架构原理能说一下吗?(es是如何实现分布式的啊)? es写入数据的工作原理是什么? es查询数据的工作...

  • Android OpenGL ES 纹理

    OpenGL ES 系列 Android OpenGL ES 基础原理[https://mp.weixin.qq....

  • Glide主流程原理详解

    前言 Glide 这个三方库使用起来非常简单Glide.with(this).load("").into(imag...

  • 2-4 ES应用场景

    索引库原理 ES应用场景

  • raft论文-选主

    1、选主 1.1 节点启动 以从的身份启动 接受主或者候选者的消息 1.2 触发选主流程 若没有消息, 超过一段时...

  • es原理--两篇文章

    infoQ讲解倒排索引 博客园讲解压缩原理,以及es搜索原理

网友评论

      本文标题:ES原理之选主流程

      本文链接:https://www.haomeiwen.com/subject/sjprzctx.html