加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
WeightRandomV2.java 996 Bytes
一键复制 编辑 原始数据 按行查看 历史
zwbckmy 提交于 2021-06-03 20:28 . 负载均衡
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
//带权重随机
public class WeightRandomV2 {
public static String getServer() {
//总权重
int totalWeights = 0;
for(Integer weight : ServerIps.WEIGHT_LIST.values()) {
totalWeights += weight;
}
Random random = new Random();
int pos = random.nextInt(totalWeights);
Set<Integer> weightSet = new HashSet<Integer>();
for(Integer weight: ServerIps.WEIGHT_LIST.values()) {
weightSet.add(weight);
}
if(weightSet.size() > 1) {
for(String ip: ServerIps.WEIGHT_LIST.keySet()) {
Integer weight = ServerIps.WEIGHT_LIST.get(ip);
if(pos < weight) {
return ip;
}
pos = pos - weight;
}
} else {
return ServerIps.LIST.get(pos);
}
return "";
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化