pub struct ConsistentHashRouter { /* private fields */ }Expand description
一致性哈希路由器
使用虚拟节点(VNode)让数据分布更均匀。 增减物理节点时,只影响相邻区间的数据,避免全局重分布。
§适用场景
- 缓存集群(Memcached/Redis 集群)
- 用户数据分片(保证同一用户始终路由到同一 shard)
- 需要动态扩缩容的场景
Implementations§
Source§impl ConsistentHashRouter
impl ConsistentHashRouter
Sourcepub fn remove_node(&mut self, node: &str)
pub fn remove_node(&mut self, node: &str)
移除节点(动态缩容)
Sourcepub fn vnodes_per_node(&self) -> usize
pub fn vnodes_per_node(&self) -> usize
返回每个物理节点的虚拟节点数
Sourcepub fn node_ownership(&self, _node: &str) -> f64
pub fn node_ownership(&self, _node: &str) -> f64
计算某节点负责的 key 比例(0.0-1.0)
通过环上该节点所有虚拟节点的总区间长度 / 2^64 计算。 用于验证分布均匀性。
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ConsistentHashRouter
impl RefUnwindSafe for ConsistentHashRouter
impl Send for ConsistentHashRouter
impl Sync for ConsistentHashRouter
impl Unpin for ConsistentHashRouter
impl UnsafeUnpin for ConsistentHashRouter
impl UnwindSafe for ConsistentHashRouter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more