一致性 hash 算法 java 代码实现

发布于: 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代码实现