加入收藏 | 设为首页 | 会员中心 | 我要投稿 黄山站长网 (https://www.0559zz.com.cn/)- 迁移、建站、智能边缘、云容器引擎、数据快递!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

蚂蚁金服开源 SOFAJRaft

发布时间:2021-05-04 15:56:07 所属栏目:外闻 来源:互联网
导读:一件事 一致 :一件事,一个结论 已达成一致的结论,不可推翻 有哪些分布式共识算法? Paxos:被认为是分布式共识算法的根本,其他都是其变种,但是 Paxos 论文中只给出了单个提案的过程,并没有给出复制状态机中需要的 multi-paxos 的相关细节的描述,实现 P
  • 一件事一致 :一件事,一个结论
  • 已达成一致的结论,不可推翻

有哪些分布式共识算法?

  • Paxos:被认为是分布式共识算法的根本,其他都是其变种,但是 Paxos 论文中只给出了单个提案的过程,并没有给出复制状态机中需要的 multi-paxos 的相关细节的描述,实现 Paxos 具有很高的工程复杂度(如多点可写,允许日志空洞等)。
  • Zab:被应用在 Zookeeper 中,业界使用广泛,但没有抽象成通用的 library。
  • Raft:以容易理解著称,业界也涌现出很多 Raft 实现,比如大名鼎鼎的 etcd, braft, tikv 等。

什么是 Raft?

Raft 是一种更易于理解的分布式共识算法,核心协议本质上还是师承 Paxos 的精髓,不同的是依靠 Raft 模块化的拆分以及更加简化的设计,Raft 协议相对更容易实现。

https://raft.github.io/

模块化的拆分主要体现在:Raft 把一致性协议划分为 Leader 选举、MemberShip 变更、日志复制、Snapshot 等几个几乎完全解耦的模块。

更加简化的设计则体现在:Raft 不允许类似 Paxos 中的乱序提交、简化系统中的角色状态(只有 Leader、Follower、Candidate 三种角色)、限制仅 Leader 可写入、使用随机化的超时时间来设计 Leader Election 等等。

特点:Strong Leader

  1. 系统中必须存在且同一时刻只能有一个 Leader,只有 Leader 可以接受 Clients 发过来的请求;
  2. Leader 负责主动与所有 Followers 通信,负责将“提案”发送给所有 Followers,同时收集多数派的 Followers 应答;
  3. Leader 还需向所有 Followers 主动发送心跳维持领导地位(保持存在感)。

一句话总结 Strong Leader: "你们不要 BB! 按我说的做,做完了向我汇报!"

另外,身为 Leader 必须保持一直 BB(heartbeat) 的状态,否则就会有别人跳出来想要

(编辑:黄山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读