关于一致性hash算法的意义以及其相对于简单求余法(除数求余法)的好处,查看第六章 memcached剖析 注意:真实的hash环的数据结构是二叉树,这里为了简便使用了列表List1、一致性hash算法的使用地方memcached服务器Jedis分片机制 2、真实服务器节 ...
关于一致性hash算法的意义以及其相对于简单求余法(除数求余法)的好处,查看第六章 memcached剖析
注意:真实的hash环的数据结构是二叉树,这里为了简便使用了列表List
1、一致性hash算法的使用地方
2、真实服务器节点没有虚拟化的一致性hash算法实现
ServerNode:真实服务器节点
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
(#换成@)。