美文网首页
raft论文-选主

raft论文-选主

作者: 小跑001 | 来源:发表于2020-08-30 16:57 被阅读0次

1、选主

1.1 节点启动

  • 以从的身份启动
  • 接受主或者候选者的消息

1.2 触发选主流程

  • 若没有消息, 超过一段时间则发起选举,升级为候选者
  • 增加当前term, 并且切换为候选者角色
  • 为自己投票, 并且并行的发送RequestVote消息给其它节点

1.3 选主中断

  • 自己赢得选举
  • 其它节点赢得选举
  • 都没有赢得选举, 并且超时
1.3.1 抢主成功
  • 在一个周期内候选者获得大多数的投票
  • 在一个周期内, 每个节点最多给一个候选者投票
  • 大多数节点确保了在一个周期内最多只有一个主被选出来
  • 一旦一个候选者赢得选举, 就会发送心跳包给其它节点来阻止新的选举
1.3.2 抢主失败
  • 当候选者收到消息发现已经有主存在, 并且term不比自己的小, 那么切换为从的角色
  • 在超过一定时间后, 当自己和别人的没赢得选举的时候, 发起一轮新的选举
1.3.3 如何保证快速选主
  • 利用随机时间

1.4 选主疑问

  • 当一个节点出现分区, 触发选主, 会不会频繁导致选主, 影响可用性
    1、这个后面章节要介绍到, 为了避免发生不必要的选主, 其它节点并不是无脑的同意候选者, 也会判断主是否真的断开了

  • 当候选者知道自己被大多数投票是有一定的延迟性的, 这个时候对外宣布为主, 或者就做主的行为, 是不是有问题:
    a、raft的行为是复制日志, 只有大多数同意才算成功, 如果作为主是过时的, 那么主的行为不会成功
    b、然而不依赖大多数的行为是有问题的, 所以利用raft来选主还需要其它的机制, 比如时间租约的模式

  • 节点启动的时候都是从, 为什么不是候选者, 影响结果的正确性或者其它特性么
    1、作为候选者启动并不会影响程序的正确性
    2、然而启动就发起选主, 这个时候日志很大可能是落后的,毕竟是有一段时间服务不可用
    3、启动就发起选主, 由于日志落后, 必然不能赢得选举, 固然会浪费服务的可用性时间

相关文章

  • raft论文-选主

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

  • Raft论文学习

    [TOC] 参考资料 raft论文原文 raft论文中文译文 raft毕业论文 raft理解 一文带你了解 Raf...

  • 分布式选举-Raft算法-2 Leader选举 代码实现

    Raft Leader选举实现 设定集群中有5个节点,通过Raft算法实现选主。节点之间的通信使用的是自我实现的R...

  • 分布式系统的Raft算法

    Raft 协议的易理解性描述 虽然 Raft 的论文比 Paxos 简单版论文还容易读了,但论文依然发散的比较多,...

  • raft论文

    In Search of an Understandable Consensus Algorithm (Exten...

  • raft论文

    概念说明 leader: 如果candidate收大多数(n/2+1)节点的投票,就会转换成leader,lead...

  • 分布式之Raft——解读《Raft》

    title: 分布式之Raft——解读《Raft》date: 2022-01-29 16:18:07 前言 论文:...

  • Raft 算法浓缩

    Raft 算法浓缩总结 Raft 论文给出了下面的表格,用于总结 Raft 算法精华 。 实际上,这些精华都是一条...

  • raft理论与实践[4]-lab2b

    准备工作 阅读raft论文 阅读我写的raft理论与实践[1]-理论篇 阅读raft理论与实践[2]-lab2a ...

  • raft理论与实践[5]-lab2c-持久化

    准备工作 阅读raft论文 阅读我写的raft理论与实践[1]-理论篇 阅读raft理论与实践[2]-lab2a ...

网友评论

      本文标题:raft论文-选主

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