你的位置:首页 > 软件开发 > Java > 第十一章 自己实现一致性hash算法

第十一章 自己实现一致性hash算法

发布时间:2016-02-28 01:01:43
关于一致性hash算法的意义以及其相对于简单求余法(除数求余法)的好处,查看第六章 memcached剖析 注意:真实的hash环的数据结构是二叉树,这里为了简便使用了列表List1、一致性hash算法的使用地方memcached服务器Jedis分片机制 2、真实服务器节 ...

关于一致性hash算法的意义以及其相对于简单求余法(除数求余法)的好处,查看第六章 memcached剖析

 

注意:真实的hash环的数据结构是二叉树,这里为了简便使用了列表List

1、一致性hash算法的使用地方

  • memcached服务器
  • Jedis分片机制

 

2、真实服务器节点没有虚拟化的一致性hash算法实现

ServerNode:真实服务器节点

第十一章 自己实现一致性hash算法第十一章 自己实现一致性hash算法
 1 package hash; 2  3 /** 4  * server节点 5 */ 6 public class ServerNode { 7   private String serverName; 8   private long serverHash; 9 10   public String getServerName() {11     return serverName;12   }13 14   public void setServerName(String serverName) {15     this.serverName = serverName;16   }17 18   public long getServerHash() {19     return serverHash;20   }21 22   public void setServerHash(long serverHash) {23     this.serverHash = serverHash;24   }25 26   /**27    * 下边重写hashcode()和equals()是为了在删除节点的时候只根据传入的serverName删除即可28   */29   @Override30   public int hashCode() {31     final int prime = 31;32     int result = 1;33     result = prime * result34         + ((serverName == null) ? 0 : serverName.hashCode());35     return result;36   }37 38   @Override39   public boolean equals(Object obj) {40     if (this == obj)41       return true;42     if (obj == null)43       return false;44     if (getClass() != obj.getClass())45       return false;46     ServerNode other = (ServerNode) obj;47     if (serverName == null) {48       if (other.serverName != null)49         return false;50     } else if (!serverName.equals(other.serverName))51       return false;52     return true;53   }54   55   56 }

原标题:第十一章 自己实现一致性hash算法

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录