#protocols #swim #group #process #scalable #extension #weakly-consistent

bin+lib membership

可扩展弱一致性感染式进程组会员资格协议的实现,具有扩展功能

6 个版本

0.0.6 2020 年 2 月 7 日
0.0.5 2019 年 9 月 28 日

#14 in #swim

Apache-2.0

90KB
2.5K SLoC

Build Status Coverage Status

membership

可扩展弱一致性感染式进程组会员资格协议 (SWIM) 的实现,具有扩展功能。

这是一个用于学习 Rust 的宠物项目,目前**不建议在生产环境中使用**。


lib.rs:

SWIM 协议的实现。

请参阅 SWIM 论文 以获取详细描述。

示例

use membership::{Node, ProtocolConfig};
use std::net::SocketAddr;
use failure::_core::str::FromStr;
use failure::_core::time::Duration;

let mut ms1 = Node::new(SocketAddr::from_str("127.0.0.1:2345").unwrap(), Default::default());
let mut ms2 = Node::new(SocketAddr::from_str("127.0.0.1:3456").unwrap(), Default::default());
ms1.start().unwrap();
ms2.join(SocketAddr::from_str("127.0.0.1:2345").unwrap()).unwrap();
std::thread::sleep(Duration::from_secs(ProtocolConfig::default().protocol_period * 2));
println!("{:?}", ms1.get_members().unwrap());
println!("{:?}", ms2.get_members().unwrap());
ms1.stop().unwrap();
ms2.stop().unwrap();

依赖项

~9MB
~161K SLoC