Java实现一致性Hash,通过nacos配置中心动态刷新节点。
com.github.evan.consistenthash.hash实现了多种hash算法。
- MD5
- MurmurHash3
- JavaObjects
com.github.evan.consistenthash.algorithm实现了一致性hash的算法
基于TreeMap 生成虚拟节点
利于java.util.SortedMap.tailMap获取距离最近key的Map对象。
com.github.evan.consistenthash.NacosConfigConfiguration添加Nacos 配置中心监听,当属性配置文件变化的时候,解析数据,处理数据。
eg:
DATA-ID consistent-hash-test.properties
refreshNode=[{"ip": "192.168.0.7","port": "8081","refreshNode": "addNode"},{ "ip": "192.168.0.2","port": "8081","refreshNode": "removeNode"}]
测试类 com.github.evan.consistenthash.algorithm.ConsistentHashByTreeMapTest