Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
分布式架构
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
人工智能
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
更多话题
tikv/raft-rs:在 Rust 中实现的 Raft 分布式共识算法源码
21-12-20
banq
在构建
分布式系统
时,一个主要目标通常是构建容错。也就是说,如果网络中的一个特定节点出现故障,或者存在网络分区,则整个集群不会发生故障。参与分布式共识协议的节点集群必须就价值达成一致,一旦达成该决定,该选择即为最终决定。
分布式共识算法通常采用复制状态机和日志的形式。每个状态机接受来自其日志的输入,并表示要复制的值,例如哈希表。它们允许一组机器作为一个连贯的组工作,可以在其某些成员的失败中幸存下来。
两个著名的分布式共识算法是 Paxos 和 Raft。Paxos 被用在像谷歌的
Chubby
这样的系统中,而 Raft 被用在像
tikv
或
etcd
之类的东西中。
Raft 通常被视为比 Paxos 更易于理解和更易于实现。
Raft算法学习可见:
分布式系统Raft算法
Raft 通过日志复制状态机。如果可以保证所有机器的日志顺序一致,那么在按顺序应用所有日志后,状态机就会达到一致的状态。
一个完整的 Raft 模型包含 4 个基本部分:
Consensus Module,核心共识算法模块;
Log,存放 Raft 日志的地方;
状态机,保存用户数据的地方;
传输,用于通信的网络层。
注意:这个 Rust 项目中的 Raft 实现仅包括核心共识模块,不包括其他部分。Raft crate 中的核心共识模块是可定制的、灵活的和有弹性的。您可以直接使用 Raft crate,但您需要构建自己的日志、状态机和传输组件。
RUST语言
分布式共识一致性专栏
分布式事务架构
分布式架构