文档章节

简单的一致性哈希算法实现

编走编想
 编走编想
发布于 2015/11/09 20:53
字数 329
阅读 179
收藏 2

抽空写了一个简单的一致性哈希算法的实现,放在了 GitHub 上(实现单元测试)。

目前实现比较原始,只实现了添加服务器节点和根据对象的 hashcode 查找服务器节点的功能。虚拟节点功能尚未实现,测试用例也少的可怜。

闲言碎语

服务器节点使用 JDK ConcurrentSkipListMap 实现,节省了不少工作。并发操作的线程安全并未实现,使用 ConcurrentSkipListMap 只是为了提供线程安全的基础。当然,在真实的系统中,数据是需要持久化的。服务器节点的信息往往会存放在 Zookeeper 或 Redis 这样的服务中。一致性哈希服务对写操作的性能相对远低于读操作,因为查找相应的服务器节点的频率远高于添加删除服务器节点。目前 ConcurrentSkipListMap 可提供100万每秒级的读操作,所以可将数据缓存在内存中以提供高性能。而服务器节点数据持久化在 Zookeeper 中。需要注意的是 hashcode 要保持相同。

真正产品级的一致性哈希算法没做过,所以哪位做过的可以说说其中的难点。

© 著作权归作者所有

共有 人打赏支持
编走编想
粉丝 150
博文 128
码字总数 111395
作品 0
海淀
程序员
私信 提问
一致性算法Hash(Consistent Hashing)

在使用缓存的时候,会把相应的数据缓存到不同的缓存机器上,而怎么把数据均匀的分撒到缓存机器上,而从实现各个缓存机器的负载均衡,主要有两种方法,一种求余数的方法,该方法实现简单,效率...

tsmyk0715
2018/08/06
0
0
memcached的分布式

memcached的分布式 今天写点周末在火车上看的memcached的东西: 一:memcached的分布式 虽然memcached被称为“分布式”缓存服务器,但是服务器端并没有“分布式”的功能。而是通过客户端来实...

泳泳啊泳泳
2018/01/07
0
0
5分钟带你理解一致性Hash算法。

QQ用得起来越少了,现在就加入300+技术微信群,公众号回复"微信群"即可加入。 一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是...

架构之路
2017/12/03
0
0
查找--深入理解一致性哈希算法

注:本篇博客只是讲述了一致性哈希的思想,我们会在之后讲述分布式哈希表以及一致性哈希的一种实现(Chord算法)。 什么是一致性哈希算法? 引用自维基百科: 一致性哈希是一种特殊的哈希算法...

珩翊
2018/06/26
0
0
一致性哈希算法及其在分布式系统中的应用

摘要 本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用。首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及...

abing_hu
2013/09/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

欧拉公式

欧拉公式表达式 欧拉公式的几何意 cosθ + j sinθ 是个复数,实数部分也就是实部为 cosθ ,虚数部分也就是虚部为 j sinθ ,对应复平面单位圆上的一个点。 根据欧拉公式和这个点可以用 复指...

sharelocked
27分钟前
2
0
burpsuite无法抓取https数据包

1.将浏览器和burpsuite的代理都设置好 2.在浏览器地址栏输入: http://burp 3.下载下面的证书,并将证书导入浏览器 cacert.der

Frost729
51分钟前
1
0
JeeSite4.x 消息管理、消息推送、消息提醒

实现统一的消息推送接口,包含PC消息、短信消息、邮件消息、微信消息等,无需让所有开发者了解消息是怎么发送出去的,只需了解消息发送接口即可。 所有推送消息均通过 MsgPushUtils 工具类发...

ThinkGem
今天
6
0
OpenML

https://www.openml.org/search?type=data

shengjuntu
今天
2
0
java强引用,软引用,弱引用和虚引用

先来简要说一下这四种引用的特性: 强引用:如果一个对象具有强引用,那垃圾回收器绝不会回收它 软引用:如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它 弱引用:在垃圾...

woshixin
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部