#哈希 #一致性 #分布式 #算法 # #哈希 #算法

已删除 一致性哈希

Rust 中的一致性哈希算法

0.1.0 2020年8月10日

#57#一致性

每月 29 次下载

MIT 许可证

9KB
179

一致性哈希

一致性哈希是一种在高度动态环境中分配值到分区上的分布式系统算法。

示例

使用此算法为 LB redis 缓存。 (Crate redis = "0.17.0")

let mut ring: ConsistentHash<String,redis::Client> = match ConsistentHash::new(100) {
    Ok(ring) => ring,
    Err(err) => panic!(err),
};

ring.add_node("redis://my-redis-node-1".to_string(), redis::Client::open("redis://my-redis-node-1")?).unwrap();
ring.add_node("redis://my-redis-node-2".to_string(), redis::Client::open("redis://my-redis-node-2")?).unwrap();
ring.add_node("redis://my-redis-node-3".to_string(), redis::Client::open("redis://my-redis-node-3")?).unwrap();
ring.add_node("redis://my-redis-node-4".to_string(), redis::Client::open("redis://my-redis-node-4")?).unwrap();

let client = match ring.get_node(String::from("some-key")){
    Some(node) => node,
    None => panic!("Not found!"),
};

let mut con = client.get_connection()?;
con.get("some-key");

依赖项

~1.5–2MB
~38K SLoC