其实就是我最近写的一个项目,采用Hash一致满足负载均衡。Hash一致环带虚拟节点。

在前面的博文中说明了我采用的方法,MurmurHash+红黑树(底层其实是sortedlist).经过多次测试结合的。

但是最近2天研究测试,发现是我没有理解红黑树(其实最慢的是返回当前Key右侧最近的节点)。我的方法实现有问题,造成了整个方法慢。现在找到了方法能够快速返回,并且查找也快。

所以对红黑树扩展了方法TialNode方法来满足Hash一致负载均衡。(该方法是建立在红黑树的特点上)。所以移除了底层的sortedlist.重新恢复使用红黑树。

也就是说现在的Hash一致负载均衡完全使用MurmurHash+红黑树。

当前项目已经更新了。我的笔记本测试,100个真实节点,每个节点160个虚拟节点,10万次测试速度不到1秒。百万次测试速度在4秒左右完成。项目中有测试代码可以直接跑。

项目地址:

https://github.com/jinyuttt/KetamaHash.git

最新文章

  1. java 集合
  2. console在调试中的常见用法
  3. MySQL 锁问题
  4. callee
  5. (转)The AlphaGo Replication Wiki
  6. Easyui CSS式样重写
  7. Ubuntu CTRL+ALT+F1~F6 进入命令模式后不支持中文显示的解决办法
  8. [转]glew, glee与 gl glu glut glx glext的区别和关系
  9. MYSQL数据库性能调优之二:定位慢查询
  10. iOS 获取通讯录里边的电话号码AddressBook
  11. LINUX 循环fork()
  12. css实现超连接按钮形式显示
  13. IOC容器的依赖注入
  14. iOSImagesExtractor for mac 快速拿到iOS应用中所有的图片资源
  15. xBIM WeXplorer xViewer 基本应用
  16. ES5-ES6-ES7_数组的扩展
  17. malloc/free 和 new/delete
  18. 分布式监控系统Zabbix3.4-钉钉告警配置记录
  19. Delphi 的 Bit
  20. solr简介、学习详细过程!(超详细~)

热门文章

  1. vue路由配置
  2. 邓俊辉数据结构学习-7-BST
  3. 【学习笔记】Java中生成对象的5中方法
  4. Java中的锁之乐观锁与悲观锁
  5. C语言的前世今生
  6. css之margin,padding的百分比
  7. BZOJ2535: [Noi2010]Plane 航空管制2(拓扑排序 贪心)
  8. 采用C/C++语言如何实现复数抽象数据类型Complex
  9. List的设置值,跟变量的位置关系(变量范围的变化导致结果差别很大)
  10. TiDB, Distributed Database