写点什么

一致性 hash 算法 java 代码实现

用户头像
Thrine
关注
发布于: 2020 年 07 月 08 日

现在一致性 hash 算法在分布式系统中也得到了广泛应用,研究过 memcached 缓存数据库的人都知道,memcached 服务器端本身不提供分布式 cache 的一致性,而是由客户端来提供,具体在计算一致性 hash 时采用如下步骤:

  1. 首先求出 memcached 服务器(节点)的哈希值,并将其配置到 0~232 的圆(continuum)上。

  2. 然后采用同样的方法求出存储数据的键的哈希值,并映射到相同的圆上。

  3. 然后从数据映射到的位置开始顺时针查找,将数据保存到找到的第一个服务器上。如果超过 232 仍然找不到服务器,就会保存到第一台 memcached 服务器上。


服务器类,代码如下:


分片类:

获取 hashcode 算法:

根据 key 获取服务器方法:

求标准差方法:

调用 main 方法:


用户头像

Thrine

关注

还未添加个人签名 2020.05.27 加入

还未添加个人简介

评论

发布
暂无评论
一致性hash算法java代码实现