示意
示意
hash(数据) → 环上位置 → 顺时针第一个节点
增删节点只迁移相邻弧段的数据;
虚拟节点:每个物理节点映射多个环上位置,摊平负载。虚拟节点示意
虚拟节点示意
物理节点 A → 环上多个位置(A#1 ... A#100)
数据键 hash 后顺时针找到最近位置 → 归属该节点
扩容前后对比:
- 无虚拟节点:负载偏差可能达数倍
- 引入虚拟节点后:偏差收敛到较小范围虚拟节点数量需要调参:太少仍会倾斜,太多增加路由表内存与查找开销。
把节点与数据都映射到哈希环上,按顺时针就近归属;增删节点时只影响相邻区段的数据,配以虚拟节点缓解负载倾斜,常用于缓存与分片路由。
hash(数据) → 环上位置 → 顺时针第一个节点
增删节点只迁移相邻弧段的数据;
虚拟节点:每个物理节点映射多个环上位置,摊平负载。物理节点 A → 环上多个位置(A#1 ... A#100)
数据键 hash 后顺时针找到最近位置 → 归属该节点
扩容前后对比:
- 无虚拟节点:负载偏差可能达数倍
- 引入虚拟节点后:偏差收敛到较小范围