美文网首页
Raft一致性协议

Raft一致性协议

作者: _飞翔的梵高 | 来源:发表于2017-12-20 15:19 被阅读19次

引子

通过思考几个问题来深入理解raft协议

Quorum

Q1:假设我们允许2个错误节点的话,最少需要部署几个节点?为什么4个节点不可以?

假设容忍2个错误,部署4个地方,因为你容忍2个错误,所以至少需要确认3个地方已经记录了一笔交易,我们就假设A B C D四个地方吧,A B C都记录了这笔交易,D也许落后一些,没关系。然后A B发生错误挂掉了,此时没有关系,因为C还保持正确的记录,系统还是可以工作的。过了一会A B都重新起来了,注意这个时候C D需要把记录同步到A和B,但是此时如果C和D都发生错误挂掉了(系统还是容忍两个错误,因为A B已经起来了),A和B拿不到正确的记录,所以整个系统是不能工作的。

所以这个时候我们需要E,并且C D E都必须保持正确的记录,这样即使他们其中的两个挂掉了,我们也可以确保正确的记录不会丢掉,所以容忍两个错误需要5个地方,并且最少有3个地方确认一笔交易就OK。

安全性

Q2:raft的日志复制是单向的(从leader到followers),那么如何保证新选出来的leader拥有所有已经committed的log?

竞选者想要当选leader的话必须联系集群中的大多数节点,以便能获得大多数的选票,那么就意味着这些节点(大多数节点)中必然至少有一个节点拥有最新的已经committed的log。这样只要保证竞选者的log至少和,所有这些节点的每一个log,都up-to-date,那么竞选者肯定就拥有已经committed的所有log。raft通过在投票的过程中限定只有你的log至少比我新,我才投票给你,这样就能达到上述的要求。

工程化

Q3:raft是如何处理线性只读请求的呢?

相关文章

  • 一致性协议raft和Paxos

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

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

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

  • 理解分布式一致性:Paxos协议之Basic Paxos

    在理解分布式一致性:Raft协议中,我们详细分析了什么是分布式一致性和实现分布式一致性的Raft协议,本文我们主要...

  • Raft协议

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

  • Raft协议细节理解

    分布式系统的一致性协议,Raft协议虽然说比paxos协议要简单,但是要理解也是有困难的。经过几天反复看raft协...

  • 分布式系统-一致性算法-Raft算法

    Raft算法介绍 raft是一个协议,可以用来实现分布式系统的一致性。 raft算法中节点的三种状态 Leader...

  • 分布式一致性算法—Raft

    为何要设计Raft Raft是斯坦福大学在2014年提出的一种新的一致性协议。作者表示之所以要设计一种全新的一致性...

  • Raft 译文

    Replicated And Fault-Tolerant Raft协议一种易于理解的一致性算法,比Paxos更易...

  • raft--分布式一致性协议

    转 # raft--分布式一致性协议[https://www.cnblogs.com/chenhao-zsh/p/...

  • Raft协议

    Raft概述 Raft 是工程上使用较为广泛的 强一致性、去中心化、高可用 的分布式协议,用于管理副本复制(Log...

网友评论

      本文标题:Raft一致性协议

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