码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 初探Raft算法


    拜占庭将军问题 wiki

    分布式对等网络中的通信容错问题。
    在分布式计算中,不同的计算机通过通讯交换信息达成共识按照一套协作策略行动。有时候,系统中的成员计算机可能出错而发送错误的信息,用于传递信息的通讯网络也可能导致信息损坏,使得网络中不同的成员关于全体协作的策略得出不同结论,从而破坏系统一致性,这就是拜占庭将军问题。
    拜占庭将军问题被认为是容错性问题中最难的问题类型之一。

    Raft

    Raft动画演示
    raft.github.io

    ** 以下的整理来自以上的动画整理

    Raft是实现分布式共识的协议.
    我们所有的节点都以跟随者状态开始.
    Leader选举
    有2个超时设置可控制选举。

    ** election timeout:follower -> candidates所等待的时间。election timeout被随机分配在150毫秒至300毫秒之间。选举超时后,跟随者成为候选者并开始新的election term选举任期…。

    ** heartbeat timeout
    这些消息以heartbeat timeout心跳超时指定的时间间隔发送。
    跟随者然后响应每个Append Entries 追加条目消息。
    此选举任期将持续到追随者停止接收心跳并成为候选人为止。

    ** 分裂
    两个节点都开始以相同的任期进行选举…
    等待新的选举周期,再试一次。

    日志复制
    当选出一位领导人后,我们需要将系统的所有更改复制到所有节点。
    通过使用与心跳相同的 Append Entries添加条目消息来完成此操作。
    …然后将更改操作在下一个心跳发送给追随者。
    一旦大多数追随者认可,便提交该条目。

    面对网络分区,Raft也可以保持一致。
    由于我们的分区,我们现在有了两位领导者。
    节点B无法复制为多数,因此其日志条目保持未提交状态。

    修复网络分区
    节点B将看到较高的选举期限并退出
    节点A和B都将回滚其未提交的条目并匹配新领导者的日志。
    现在,我们的日志在整个集群中是一致的。

    News

    kafka3.0,也正式弃用了zookeeper,转向raft。
    参考:Release Notes

    以下文章写的不错,可以看看
    拜占庭将军问题和 Raft 共识算法讲解

  • 相关阅读:
    自定义注解实现Redis分布式锁、手动控制事务和根据异常名字或内容限流的三合一的功能
    【软件】智慧树/知到网课小助手
    k8s pod访问策略及使用service访问集群中的pod
    数据结构与算法 - 链表相关面试题
    洛谷 P3804 【模板】后缀自动机 (SAM)(后缀自动机)
    双11狂欢最后一天
    GNU ld链接器 lang_process()(二)
    sql:SQL优化知识点记录(七)
    Python如何正确将“爬虫数据”以json格式进行保存
    FANUC机器人防干涉区域的使用方法和设置步骤
  • 原文地址:https://blog.csdn.net/yuan882696yan/article/details/127110955
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号