raft一致性算法

raft算法保证集群元数据的一致性。

保证cap中的cp,当发生严重的网络分区后,放弃可用性。

raft算法流程:
所有跟随者(follower)有一个随机超时时间接收leader的心跳。
如果超时未收到心跳,就变成候选者(candidate),并发起投票。
每个跟随者只会给第一个向自己请求投票的候选者投票。
当候选者获取到超过半数的投票就会成为leader。

集群中只有leader能处理客户端的写请求(元数据变更),并将写请求同步给所有跟随者。当收到超过一半跟随者的写入确认后(加上leader自己就超过一半了),leader回复客户端写入成功。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 很久之前研究过raft协议,最近项目中一直没有使用,有些生疏了,这次重温了一下raft,花了两天的时间,就顺便做下...
    何约什阅读 20,600评论 18 27
  • Raft 也是一种分布式一致性算法(2PC、Proxy、ZAB) 一致性算法是从复制状态机的背景下提出的。一致性算...
    jiangmo阅读 1,032评论 0 2
  • 为何要设计Raft Raft是斯坦福大学在2014年提出的一种新的一致性协议。作者表示之所以要设计一种全新的一致性...
    WILL_HUNTING阅读 667评论 0 0
  • 前言 应用服务架构的发展是一个循序渐进的过程,从最开始的单机架构逐步演化到如今的基于微服务的分布式架构。与此同时,...
    李木子啊阅读 557评论 0 1
  • 分布式共识及Raft简介 所谓分布式共识(consensus),与CAP理论[https://en.wikiped...
    LittleMagic阅读 4,213评论 1 7