3个版本
0.10.2 | 2024年3月13日 |
---|---|
0.10.1 | 2024年3月11日 |
0.10.0 | 2024年3月10日 |
#1275 in 算法
155KB
3.5K SLoC
lolraft
Rust语言中的多Raft实现。
特性
- 实现了生产使用所需的Raft所有核心功能。
- 支持多Raft。多个Raft进程可以在单个OS进程中共存,以便它们可以有效地共享资源。
- 基于Tonic,在日志复制和快照中利用高效的gRPC流。
- 使用Phi累积故障检测器进行领导者故障检测。自适应算法允许您在部署之前不选择一个固定的超时数字,使得在地理分布式环境中部署Raft节点成为可能。
架构
为了实现多Raft,架构分为两个空间。下面的一层被称为“纯Raft”层,它完全不知道gRPC和多Raft。因此,它被称为纯。另一侧将gRPC请求转换为纯请求,反之亦然。
开发
docker compose build
构建测试应用程序。- TERM1:
./log
启动日志监视器。 - TERM2:
./dev
启动开发容器。 - TERM2:
cargo test
。
作者
Akira Hayakawa
电子邮件: [email protected]
依赖关系
~10–20MB
~259K SLoC