Ai
1 Star 0 Fork 0

雨碎江南/dsa4j

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
Moder.java 940 Bytes
一键复制 编辑 原始数据 按行查看 历史
consoles 提交于 2017-01-21 09:34 +08:00 . 【Oauth2微信登陆】
package io.github.consoles.distribution;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.CRC32;
/**
* Created by yiihua-013 on 16/10/25.
* <p>
* 分布式取模算法
*/
public class Moder implements Hash, Distribution {
private List<String> nodes = new ArrayList<>();
public int getServerSize() {
return nodes.size();
}
@Override
public String lookup(String key) {
int serversLen = nodes.size();
int pos = (int) (hash(key) % serversLen);
return nodes.get(pos);
}
@Override
public long hash(String str) {
CRC32 crc32 = new CRC32();
crc32.update(str.getBytes());
long ret = crc32.getValue();
return ret > 0 ? ret : -ret;
}
public void addNode(String node) {
if (!nodes.contains(node)) nodes.add(node);
}
public void deleteNode(String node) {
nodes.remove(node);
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/gaopengfei/dsa4j.git
git@gitee.com:gaopengfei/dsa4j.git
gaopengfei
dsa4j
dsa4j
master

搜索帮助