美文网首页
raft协议

raft协议

作者: mafa1993 | 来源:发表于2023-01-18 15:47 被阅读0次

etcd的raft协议

弱一致性(投票时部分同意即可),强稳定性。可通过修改配置改为强一致性

  1. 客户端发送一个请求到服务器,服务器将数据记录到日志模块,并且一致性模块发送请求到所有节点,各个节点记录到日志模块,并返回是否确定,如果大于一半确定,就将数据写到状态机
  2. raft协议过程
    • 开始所有节点都是fllower节点,等待主节点指令,一段时间(election timeout,每个节点的不同,为了减少所有节点同时发生选举的情况,150-300ms的随机值)内没有收到指令,就会变成candidation(候选节点),候选节点向其他节点发送请求,进行拉票,接收大都请求的节点进行回复,是否选他,超半数当选
    • 所有的数据更新请求都是发送给主节点,主节点先将数据写到日志,然后把数据发送给从节点,从节点返回确定信息,超过半数节点确认,主节点就把数据写到存储,并通知从节点确认
    • 当主节点当选后,就会发送心跳包,来确认存活
    • 如果偶数个节点,然后
    • 数据的同步会和心跳包一起发送给子节点
    • 如果有多个节点,然后产生了网络隔离,分成了两个部分,节点数不超过一半的部分不能同步数据,超过一半的能选举新的leader,系统有两个leader存在,新的主节点任期比老的高,如果网络恢复,任期高的主节点会成为新的主节点
    • etcd强一致性和弱一致性可以通过配置修改
  3. learner
    • raft 4.2.1引入的新角色,在etcd集群需要增加节点的时候,新节点的数据为空,会发生数据的同步,可能导致带宽耗尽,从而导致心跳发送失败,就会产生leader的重新选举,可能会导致系统不可用。因此引入learner节点,只接收数据不参与投票,新加入的节点,默认为learner,learner的加入不会导致集群的quorum(实例数量)改变

相关文章

  • RocketMQ主从切换

    本文主要是记录raft协议的学习过程,包括如下几个方面 raft协议一些基本概念 raft协议场景 raft协议在...

  • 一致性协议raft和Paxos

    raft一致性协议 透彻讲解raft协议选举过程 etcd 利用raft一致性协议 zookeeper使用Paxo...

  • Raft协议

    1.raft协议 raft协议是一个共识算法,主要包括leader election,log replicatio...

  • 对标Eureka的AP一致性,Nacos如何实现Raft算法

    一、快速了解Raft算法 Raft 适用于一个管理日志一致性的协议,相比于 Paxos 协议 Raft 更易于理解...

  • Raft 协议

    Raft 协议 Raft 感觉是最容易理解的一个了,也很有意思。先说它的逻辑: Raft 协议的每个副本都会处于三...

  • Raft 协议

    Raft 协议是一个分布式共识(consensus)算法, 可以参考 ATC-Raft 和 Thesis-Raft...

  • 【raft】raft协议解析

  • Raft协议

    典型场景分析 场景减少,系统中共有三个节点,由于三个机器各自机器故障,无法与其他的节点完成正常的网络通信,假设三个...

  • Raft协议

    三种节点状态 follow candidate leader Raft一致性策略 Raft协议强依赖leader节...

  • raft协议

    资料 官方网站 https://raft.github.io/动画示例 http://thesecretliv...

网友评论

      本文标题:raft协议

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