作者 crossoverJie

:sparkles: Introducing new features.两种一致性hash 算法

@@ -14,8 +14,16 @@ import java.util.List; @@ -14,8 +14,16 @@ import java.util.List;
14 */ 14 */
15 public abstract class AbstractConsistentHash { 15 public abstract class AbstractConsistentHash {
16 16
17 - protected void add(long key,String value){} 17 + /**
  18 + * 新增节点
  19 + * @param key
  20 + * @param value
  21 + */
  22 + protected abstract void add(long key,String value);
18 23
  24 + /**
  25 + * 排序节点,数据结构自身支持排序可以不用重写
  26 + */
19 protected void sort(){} 27 protected void sort(){}
20 28
21 /** 29 /**
@@ -23,9 +31,7 @@ public abstract class AbstractConsistentHash { @@ -23,9 +31,7 @@ public abstract class AbstractConsistentHash {
23 * @param value 31 * @param value
24 * @return 32 * @return
25 */ 33 */
26 - protected String getFirstNodeValue(String value){  
27 - return null ;  
28 - } 34 + protected abstract String getFirstNodeValue(String value);
29 35
30 public void process(List<String> values){ 36 public void process(List<String> values){
31 for (String value : values) { 37 for (String value : values) {
@@ -19,10 +19,6 @@ public class TreeMapConsistentHash extends AbstractConsistentHash { @@ -19,10 +19,6 @@ public class TreeMapConsistentHash extends AbstractConsistentHash {
19 } 19 }
20 20
21 @Override 21 @Override
22 - protected void sort() {  
23 - }  
24 -  
25 - @Override  
26 protected String getFirstNodeValue(String value) { 22 protected String getFirstNodeValue(String value) {
27 long hash = super.hash(value); 23 long hash = super.hash(value);
28 System.out.println("value=" + value + " hash = " + hash); 24 System.out.println("value=" + value + " hash = " + hash);