T - 节点类型public class ConsistentHash<T>
extends java.lang.Object
| 限定符和类型 | 类和说明 |
|---|---|
static interface |
ConsistentHash.HashFunc
Hash算法对象,用于自定义hash算法
|
| 构造器和说明 |
|---|
ConsistentHash(ConsistentHash.HashFunc hashFunc,
int numberOfReplicas,
java.util.Collection<T> nodes)
构造
|
ConsistentHash(int numberOfReplicas,
java.util.Collection<T> nodes)
构造,使用Java默认的Hash算法
|
| 限定符和类型 | 方法和说明 |
|---|---|
void |
add(T node)
增加节点
每增加一个节点,就会在闭环上增加给定复制节点数 例如复制节点数是2,则每调用此方法一次,增加两个虚拟节点,这两个节点指向同一Node 由于hash算法会调用node的toString方法,故按照toString去重 |
T |
get(java.lang.Object key)
获得一个最近的顺时针节点
|
void |
remove(T node)
移除节点的同时移除相应的虚拟节点
|
public ConsistentHash(int numberOfReplicas,
java.util.Collection<T> nodes)
numberOfReplicas - 复制的节点个数,增加每个节点的复制节点有利于负载均衡nodes - 节点对象public ConsistentHash(ConsistentHash.HashFunc hashFunc, int numberOfReplicas, java.util.Collection<T> nodes)
hashFunc - hash算法对象numberOfReplicas - 复制的节点个数,增加每个节点的复制节点有利于负载均衡nodes - 节点对象public void add(T node)
node - 节点对象public void remove(T node)
node - 节点对象public T get(java.lang.Object key)
key - 为给定键取Hash,取得顺时针方向上最近的一个虚拟节点对应的实际节点Copyright © 2018. All rights reserved.