php分布式数据库 php 分布式( 八 )


Long k =
((long)(d[3+h*4]0xFF)24)
| ((long)(d[2+h*4]0xFF)16)
| ((long)(d[1+h*4]0xFF)8 )
| ((long)(d[0+h*4]0xFF));
// 在环上保存节点
consistentBuckets.put( k, servers[i] );
}
}
// 每个server一共分配4*factor个虚拟节点
}
// 用MD5来计算key的hash值
MessageDigest md5 = MD5.get();
md5.reset();
md5.update( key.getBytes() );
byte[] bKey = md5.digest();
// 取MD5值的低32位作为key的hash值
long hv = ((long)(bKey[3]0xFF)24) | ((long)(bKey[2]0xFF)16) | ((long)(bKey[1]0xFF)8 ) | (long)(bKey[0]0xFF);
// hv的tailMap的第一个虚拟节点对应的即是目标server
SortedMap tmap = this.consistentBuckets.tailMap( hv );
return ( tmap.isEmpty() ) ? this.consistentBuckets.firstKey() : tmap.firstKey();
更多问题到问题求助专区()
php分布式数据库的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于php 分布式、php分布式数据库的信息别忘了在本站进行查找喔 。

推荐阅读