2 个版本
0.1.1 | 2020年10月12日 |
---|---|
0.1.0 | 2020年10月10日 |
4 在 #leader
5MB
721 代码行
包含 (DOS 可执行文件, 5MB) data/tools/mkcert.exe
RUST_RAFT
该软件包旨在成为 Rust Raft 实现,这是许多分布式系统的一个关键组件。
此软件包保证:
- 任何时间只有一个领导者;
- 数据与领导者同步,但只保留初始配置中不超过快照数量的最新项。
用户负责从快照中获取数据,将数据保存到数据库中,以及同步当前快照范围之外的数据。
快速入门
- 这是启动 Raft 的正常流程。克隆软件包并运行 bin.rs。
pub mod trans;
pub mod raft;
#[macro_use]
extern crate anyhow;
#[tokio::main]
async fn main() {
let conf = raft::raft_conf::ConfigRaft::default();
trans::server::init_app(conf);
trans::server::run_app();
raft::raft_run::cron_app().await;
}
-
api 处理数据
-
append_entry:用户在向分布式系统添加数据时调用此函数。
-
fetch_ids:用户调用此函数以与领导者同步快照。cron_app() 函数将在 ConfigRaft.update_snapshot_tick 时调用此函数。
-
query_id:使用 id 从领导者查询数据,用户应将数据保存到数据库中。建议同时保存 id 以判断重复。
-
依赖项
~38MB
~862K SLoC