go-zero的一致性hash

最近在尝试使用图来记录

如何处理一个虚拟节点映射到多个物理节点(hash冲突,也就是图中(a2,b2在一起了,我们只能找到最后映射的物理节点))

首先 连线对应的是一个物理节点的切片

  1. add: 会添加进这个切片中
  2. get: 如果出现冲突,我们会再次进行hash得到新的\(index\).
  3. delete: 如果是多个物理节点(冲突),遍历切片,将\(hash != hash(物理节点)\) 的物理节点添加到原有切片

添加

根据参数,创建不同数量的虚拟节点,并维护 虚拟节点->物理节点的关系.

image

posted @ 2023-01-14 21:53  来个半马庆祝下  阅读(81)  评论(0)    收藏  举报