刚刚有说道过,不同的服务器性能不同,所以不能一概而论,需要给性能低的服务器给比较低的权重,性能高的给跟高的权重,代码如下:
- public class BalanceServer {
- public static Map<String, Integer> serverMap = new HashMap<String, Integer>();
- public static int pos = 0;
- static {
- serverMap.put("192.168.0.1", 1);
- serverMap.put("192.168.0.2", 1);
- serverMap.put("192.168.0.3", 4);
- serverMap.put("192.168.0.4", 3);
- serverMap.put("192.168.0.5", 3);
- serverMap.put("192.168.0.6", 2);
- }
- public static String getServer() {
- Set<String> keySet = serverMap.keySet();
- Iterator<String> it = keySet.iterator();
- List<String> servers = new ArrayList<String>();
- while (it.hasNext()) {
- String server = it.next();
- Integer weight = serverMap.get(server);
- for (int i = 0; i < weight; i++) {
- servers.add(server);
- }
- }
- String server = null;
- if (pos >= servers.size()) {
- pos = 0;
- }
- server = servers.get(pos);
- pos++;
- return server;
- }
- public static void main(String[] args) {
- for(int i=0;i<14;i++){
- System.out.println(BalanceServer.getServer());
- }
- 35 }
- 36}
5.加权随机法 (编辑:西安站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|