关于负载均衡中权重分配的算法模拟

来源:互联网 发布:php中echo是什么意思 编辑:程序博客网 时间:2024/05/22 00:22

直接上代码

class Server{private String ip;private String port;public int weight;}class LoadBalancer{private static List<Server> list=new List<Server>();private static int totalWeight=0;static{//加载配置文件,将解析的服务器列表添加到list中.同时计算出总权重值//list.add(server);//totalWeight+=server.weight;}private static LoadBalancer loadBalancer=new LoadBalancer(); private LoadBalancer(){}public static LoadBalancer getLoadBalancer(){return loadBalancer;}public Server getServer(){int sum=0;int rand=(int)(1+Math.random()*totalWeight);for(Server serv : list){////由概率区间值决定服务器的分配sum+=serv.weight;if(rand<=sum){return serv;}else{continue;}}return null;//不会出现这种情况。}}


0 0