蚂蚁金服开源 SOFAJRaft:出产级 Java Raft 算法库
副问题[/!--empirenews.page--]
什么是 SOFAJRaft? SOFAJRaft 是一个基于 Raft 同等性算法的出产级高机能 Java 实现,支持 MULTI-RAFT-GROUP,合用于高负载低耽误的场景。 行使 SOFAJRaft 你可以专注于本身的营业规模,由 SOFAJRaft 认真处理赏罚全部与 Raft 相干的技能困难,而且 SOFAJRaft 很是易于行使,你可以通过几个示例在很短的时刻内把握它。 https://raft.github.io SOFAJRaft 是从百度的 braft 移植而来,做了一些优化和改造,感激百度 braft 团队开源了云云优越的 C++ Raft 实现。 https://github.com/brpc/braft 基本常识:漫衍式共鸣算法 (Consensus Algorithm)怎样领略漫衍式共鸣?
有哪些漫衍式共鸣算法?
Raft 是一种更易于领略的漫衍式共鸣算法,焦点协议本质上照旧师承 Paxos 的精华,差异的是依赖 Raft 模块化的拆分以及越发简化的计划,Raft 协议相对更轻易实现。 https://raft.github.io/ 模块化的拆分首要表此刻:Raft 把同等性协议分别为 Leader 推举、MemberShip 改观、日记复制、Snapshot 等几个险些完全解耦的模块。 越发简化的计划则表此刻:Raft 不应承相同 Paxos 中的乱序提交、简化体系中的脚色状态(只有 Leader、Follower、Candidate 三种脚色)、限定仅 Leader 可写入、行使随机化的超时时刻来计划 Leader Election 等等。 特点:Strong Leader
一句话总结 Strong Leader: "你们不要 BB! 按我说的做,做完了向我讲述!"。 其它,身为 Leader 必需保持一向 BB(heartbeat) 的状态,不然就会有别人跳出来想要 BB 。 Raft 中的根基观念 篇幅有限,这里只对 Raft 中的几个观念做一个简朴先容,具体请参考 Raft paper。 https://raft.github.io/raft.pdf Raft-node 的 3 种脚色/状态
Message 的 3 种范例
任期逻辑时钟
本图出自《Raft: A Consensus Algorithm for Replicated Logs》 什么是 SOFAJRaft?SOFAJRaft 是一个基于 Raft 同等性算法的出产级高机能 Java 实现,支持 MULTI-RAFT-GROUP,合用于高负载低耽误的场景。 行使 SOFAJRaft 你可以专注于本身的营业规模,由 SOFAJRaft 认真处理赏罚全部与 Raft 相干的技能困难,而且 SOFAJRaft 很是易于行使,你可以通过几个示例在很短的时刻内把握它。 https://github.com/brpc/braft SOFAJRaft 是从百度的 braft 移植而来,做了一些优化和改造,感激百度 braft 团队开源了云云优越的 C++ Raft 实现。 SOFAJRaft 整体成果&机能优化成果支持 1.Leader election:Leader 推举,这个不多说,上面已先容过 Raft 中的 Leader 机制。 2.Log replication and recovery:日记复制和日记规复。 1)Log replication 就是要担保已经被 commit 的数据必然不会丢失,即必然要乐成复制到大都派。 2)Log recovery 包括两个方面: 3)Current term 日记规复:首要针对一些 Follower 节点重启插手集群可能是新增 Follower 节点后怎样追日记; 4)Prev term 日记规复:首要针对 Leader 切换前后的日记同等性。 (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |