1、raft算法是什么? 答:共识算法

2、raft算法有什么用? 答:维持不同机器的强一致性

3、raft算法通过什么方式来维持不同机器的强一致性? 答:传递log日志 ,按照官方的说法日志里面包含命令,每台机器执行相同的命令,结果应该是一样的

4、raft算法如何传递日志? 答:Raft算法通过Leader节点来传递日志。当一个客户端发送一条请求给Leader节点时,Leader节点会将该请求作为一条日志条目添加到自己的日志中,并将该日志条目复制到其他节点的日志中。接收到日志条目的节点会对其进行持久化,并向Leader节点发送确认消息(心跳)。一旦Leader节点收到大多数(超过半数)节点的确认消息,该日志条目就被认为是已提交的,然后Leader节点会将该日志条目应用到状态机,并将执行结果返回给客户端。

5、raft算法是如何选举leader的?  答:vote 出来的,每个机器都可以接受投票,也可以投对面,但是每台机器只有一张票,奇数的机器的大多数获得票的人会成为leader ,其他机器称为follower,在投票的时候,被投的机器叫做候选人   比如说7台机器   只要有一台候选人拿到了4票,则那个候选人则为leader  如果是偶数的机器,候选人的票数一样,则会等时间,时间一过继续举行投票,直到选出leader为止 。

6、假如有五台机器,选leader的时候,如果两台和另外三台因为网络等原因断开了,该是什么样的情况?

答:这种情况下,会从两台和三台中各选一名leader  ,因为这两坨断开了,所以并不知道对面都存在了一名leader,两台中会按照leader来传送日志,三台中会按照另一个leader来传送日志,同样它们的follower也会发送心跳来告诉leader,这种情况下会有两个client客户端,一个leader对应一个client客户端,这个时候他们都不会真正的提交,等网络重连之后,会按照优先级也就是票数,两台的leader会主动放弃,这个时候,两台机器都会回滚到网络刚断开的时候,然后由真正的leader领导,继续发送日志给其他机器

本文仅个人理解,如若讲错,各位尽可评论

raft算法的自我理解的更多相关文章

  1. 对dijkstra算法的自我理解,c#例子

    dijkstra该算法主要应用在求解最短路径,从最近点开始,广度搜索. 假设有向图中有10个顶点,求其中某个顶点a到其它顶点的最短路径..满足贪心算法的2个标准.时间复杂度为O(N2) 此问题可以进行 ...

  2. 学习Raft算法的笔记

    Raft是一种为了管理日志复制的一致性算法.它提供了和Paxos算法相同的功能和性能,但是它的算法结构和Paxos不同,使得Raft算法更加容易理解并且更容易构建实际的系统.为了提升可理解性,Raft ...

  3. 分布式一致性协议之:Raft算法

    一致性算法Raft详解 背景 熟悉或了解分布性系统的开发者都知道一致性算法的重要性,Paxos一致性算法从90年提出到现在已经有二十几年了,而Paxos流程太过于繁杂实现起来也比较复杂,可能也是以为过 ...

  4. Raft算法详解

    一致性算法Raft详解 背景 熟悉或了解分布性系统的开发者都知道一致性算法的重要性,Paxos一致性算法从90年提出到现在已经有二十几年了,而Paxos流程太过于繁杂实现起来也比较复杂,可能也是以为过 ...

  5. 分布式共识算法 (三) Raft算法

    系列目录 分布式共识算法 (一) 背景 分布式共识算法 (二) Paxos算法 分布式共识算法 (三) Raft算法 分布式共识算法 (四) BTF算法 一.引子 1.1 介绍 Raft 是一种为了管 ...

  6. 理解分布式一致性与Raft算法

    理解分布式一致性与Raft算法 永远绕不开的CAP定理 出于可用性及负载方面考虑,一个分布式系统中数据必然不会只存在于一台机器,一致性简单地说就是分布式系统中的各个部分保持数据一致 但让数据保持一致往 ...

  7. 分布式一致性算法:Raft 算法(论文翻译)

    Raft 算法是可以用来替代 Paxos 算法的分布式一致性算法,而且 raft 算法比 Paxos 算法更易懂且更容易实现.本文对 raft 论文进行翻译,希望能有助于读者更方便地理解 raft 的 ...

  8. Raft算法,从学习到忘记

    Raft算法,从学习到忘记 --Raft算法阅读笔记. --Github 概述 说到分布式一致性算法,可能大多数人的第一反应是paxos算法.但是paxos算法一直以来都被认为是难以理解,难以实现.S ...

  9. 关于raft算法

    列出一些比较好的学习资料, 可以经常翻一番,加深印象 0 raft官方git 1  raft算法动画演示 2    Raft 为什么是更易理解的分布式一致性算法 3  raft一致性算法 4  Raf ...

  10. 从分布式一致性到共识机制(二)Raft算法

    春秋五霸说开 春秋五霸,是指东周春秋时期相继称霸主的五个诸侯,“霸”,意为霸主,即是诸侯之领袖.典型的比如齐桓公,晋文公,春秋时期诸侯国的称霸,与今天要讨论的Raft算法很像. 一.更加直观的Raft ...

随机推荐

  1. Luckysheet:一个纯前端的excel在线表格

    最近因为项目要求,需要在页面上添加一个在线编辑excel的功能,因此只能在网上找有没有直接用的插件,最后很幸运的是幸好找到了一个 ----luckysheet. 这个是从luckysheet官网上找的 ...

  2. 结果过滤器—MVC项目中结果过滤器(Result Filter)使用

    一.什么是结果过滤器? 结果过滤器(ResultFilter),是对执行的Action结果进行处理的一种AOP思想,适用于任何需要直接环绕 View 或格式化处理的逻辑.结果过滤器可以替换或更改 Ac ...

  3. SpringBoot 测试实践 - 1:常用的工具

    我自己接触到的一些商业或是开源的基于 SpringBoot 项目,它们大部分是没有测试代码的,test 文件夹只有脚手架初始化生成的那个测试类,跟不同的开发聊到这个话题,发现他们中的大部分没有写测试的 ...

  4. ubuntu/linux 好用的截图工具 搜狗输入法自带的截图快捷键,自己觉得不方便的话,修改为自己习惯的快捷键即可

    公司要求使用ubuntu开发,在安装完必要得开发工具之后,按照我在windows平台的习惯,就准备安装一个好用的截图工具了,我比较推荐的是snipaste([https://zh.snipaste.c ...

  5. cs50ai1

    cs50ai1-------Knowledge cs50ai1-------Knowledge 基础知识 课后题目 代码实践 学习链接 总结 基础知识 对我们来说,一些基本的logic是自然而然的,我 ...

  6. 一个.NET 7 + DDD + CQRS +React+Vite的实战项目

    项目简介 基于SignalR实现聊天通信,支持横向扩展,可支撑上万用户同时在线聊天 后端架构 后端技术栈采用 .NET 7 PostgreSQL (业务数据库) Redis(用于存放热点数据,和支持S ...

  7. yum&二进制安装PostgreSQL 12

    一.yum安装&配置PostgreSQL 12 目录 一.yum安装&配置PostgreSQL 12 一.前言 1.本文主要内容 2.本文环境信息与适用范围 二.PostgreSQL安 ...

  8. 【RocketMQ】消息的拉取总结

    在上一讲中,介绍了消息的存储,生产者向Broker发送消息之后,数据会写入到CommitLog中,这一讲,就来看一下消费者是如何从Broker拉取消息的. RocketMQ消息的消费以组为单位,有两种 ...

  9. Berkeley

    2019年Berkeley预测Serverless将取代Serverful计算,成为云计算的计算新范式.Serverless为应用程序开发提供了一种全新的系统架构,其凭借着弹性伸缩省事省心,按需付费更 ...

  10. xgo多线程

    import threading import time #导入xgoedu from xgoedu import XGOEDU from xgolib import XGO #导入xgolib  # ...