
AG捕鱼本文转载自微信公众号「Android建造编程」,作家Android建造编程。转载本文请关连Android建造编程公众号。
皇冠博彩网站一直以来注重用户体验博彩服务质量,广大博彩爱好者提供多种多样博彩游戏赛事直播,博彩攻略技巧分享,用户能够更好地了解博彩知识提高博彩技巧。 序论什么是负载平衡:
指由多台办事器以对称的情势构成一个办事器靠拢,每台办事器齐具有等价的地位,齐不错单独对外提供办事而不必其他办事器的赞成。通过某种 负载摊派本领,将外部发送来的申请均匀分派到对称结构中的某一台办事器上,而接受到申请的办事器独随即回报客户的申请。负载平衡梗概对等分派客户申请到服 务器阵列,借此提供快速获取进攻数据,惩处大批并发拜谒办事问题,这种集群本领不错用最少的投资赢得接近于大型主机的性能;
今天咱们就来说说;
一、负载平衡算法简介
1、轮询法
将申请按法例轮替地分派到后端办事器上,它平衡地对待后端的每一台办事器,而不顺心办事器本色的贯穿数和现时的系统负载;
2、有时法
《中国新闻周刊》梳理中央纪委国家监委网站披露信息发现,截至7月24日,金融系统内的省管及以上级别干部已有60多人接受审查调查,40多人被处分。60多人中,除了中管干部数位,还有中央一级党和国家机关、国企和金融单位干部40多人,省管干部10多人。
太阳城中心通过系统的有时算法,字据后端办事器的列表大小值来有时登第其中的一台办事器进行拜谒。由概率统计表面不错得知,跟着客户端调用办事端的次数增加,其本色成果越来越接近于对等分派调用量到后端的每一台办事器,也就是轮询的截至;
3、源地址哈希法
皇冠足球源地址哈希的念念想是字据获取客户端的IP地址,通过哈希函数盘算得到的一个数值,用该数值对办事器列表的大小进行取模运算,得到的截至即是客服端要拜谒办事器的序号。选拔源地址哈希法进行负载平衡,合并IP地址的客户端,当后端办事器列表不变时,皇冠账号它每次齐会映射到合并台后端办事器进行拜谒;
4、加权轮询法
不同的后端办事器可能机器的成就和现时系统的负载并不相通, 皇冠网址因此它们的抗压智商也不相通。给成就高、负载低的机器成就更高的权重, zh皇冠体育api让其处理更多的请;而成就低、负载高的机器,给其分派较低的权重,镌汰其系统负载,加权轮询能很好地处理这一问题,并将申请法例且按照权重分派到后端;
转型5、加权有时法
博彩平台游戏策略与加权轮询法不异,加权有时法也字据后端机器的成就,系统的负载分派不同的权重。不同的是,它是按照权重有时申请后端办事器,而违警例;
皇冠体育打不开 二、代码完毕负载平衡五种算法1.轮询法
import java.util.*; import java.util.concurrent.ConcurrentHashMap; public class TestRoundRobin { // 1.界说map, key-ip,value-weight static Map<String,Integer> ipMap=new HashMap<>(); static { ipMap.put("192.168.13.1",1); ipMap.put("192.168.13.2",皇冠下注1); ipMap.put("192.168.13.3",1); } // Integer sum=0; Integer pos = 0; public String RoundRobin(){ Map<String,Integer> ipServerMap=new ConcurrentHashMap<>(); ipServerMap.putAll(ipMap); // 2.取出来key,放到set中 Set<String> ipset=ipServerMap.keySet(); // 3.set放到list,要轮回list取出 ArrayList<String> iplist=new ArrayList<String>(); iplist.addAll(ipset); String serverName=null; // 4.界说一个轮回的值,要是大于set就从0启动 synchronized(pos){ if (pos>=ipset.size()){ pos=0; } serverName=iplist.get(pos); //轮询+1 pos ++; } return serverName; } public static void main(String[] args) { TestRoundRobin testRoundRobin=new TestRoundRobin(); for (int i=0;i<10;i++){ String serverIp=testRoundRobin.RoundRobin(); System.out.println(serverIp); } } }
2.加权轮询法
皇冠客服飞机:@seo3687import java.util.*; import java.util.concurrent.ConcurrentHashMap; public class TestWeightRobin { // 1.map, key-ip,value-weight static Map<String,Integer> ipMap=new HashMap<>(); static { ipMap.put("192.168.13.1",1); ipMap.put("192.168.13.2",2); ipMap.put("192.168.13.3",4); } Integer pos=0; public String WeightRobin(){ Map<String,Integer> ipServerMap=new ConcurrentHashMap<>(); ipServerMap.putAll(ipMap); Set<String> ipSet=ipServerMap.keySet(); Iterator<String> ipIterator=ipSet.iterator(); //界说一个list放统统server ArrayList<String> ipArrayList=new ArrayList<String>(); //轮回set,字据set中的不错去得知map中的value,给list中添加对应数字的server数目 while (ipIterator.hasNext()){ String serverName=ipIterator.next(); Integer weight=ipServerMap.get(serverName); for (int i = 0;i < weight ;i++){ ipArrayList.add(serverName); } } String serverName=null; if (pos>=ipArrayList.size()){ pos=0; } serverName=ipArrayList.get(pos); //轮询+1 pos ++; return serverName; } public static void main(String[] args) { TestWeightRobin testWeightRobin=new TestWeightRobin(); for (int i =0;i<10;i++){ String server=testWeightRobin.WeightRobin(); System.out.println(server); } } }
3.有时法
import java.util.*; import java.util.concurrent.ConcurrentHashMap; public class TestRandom { // 1.界说map, key-ip,value-weight static Map<String,Integer> ipMap=new HashMap<>(); static { ipMap.put("192.168.13.1",1); ipMap.put("192.168.13.2",2); ipMap.put("192.168.13.3",4); } public String Random() { Map<String,Integer> ipServerMap=new ConcurrentHashMap<>(); ipServerMap.putAll(ipMap); Set<String> ipSet=ipServerMap.keySet(); //界说一个list放统统server ArrayList<String> ipArrayList=new ArrayList<String>(); ipArrayList.addAll(ipSet); //轮回有时数 Random random=new Random(); //有时数在list数目中取(1-list.size) int pos=random.nextInt(ipArrayList.size()); String serverNameReturn= ipArrayList.get(pos); return serverNameReturn; } public static void main(String[] args) { TestRandom testRandom=new TestRandom(); for (int i =0;i<10;i++){ String server=testRandom.Random(); System.out.println(server); } } }
4.加权有时
import java.util.*; import java.util.concurrent.ConcurrentHashMap; public class TestRobinRandom { // 1.界说map, key-ip,value-weight static Map<String,Integer> ipMap=new HashMap<>(); static { ipMap.put("192.168.13.1",1); ipMap.put("192.168.13.2",2); ipMap.put("192.168.13.3",4); } public String RobinRandom(){ Map<String,Integer> ipServerMap=new ConcurrentHashMap<>(); ipServerMap.putAll(ipMap); Set<String> ipSet=ipServerMap.keySet(); Iterator<String> ipIterator=ipSet.iterator(); //界说一个list放统统server ArrayList<String> ipArrayList=new ArrayList<String>(); //轮回set,字据set中的不错去得知map中的value,给list中添加对应数字的server数目 while (ipIterator.hasNext()){ String serverName=ipIterator.next(); Integer weight=ipServerMap.get(serverName); for (int i=0;i<weight;i++){ ipArrayList.add(serverName); } } //轮回有时数 Random random=new Random(); //有时数在list数目中取(1-list.size) int pos=random.nextInt(ipArrayList.size()); String serverNameReturn= ipArrayList.get(pos); return serverNameReturn; } public static void main(String[] args) { TestRobinRandom testRobinRandom=new TestRobinRandom(); for (int i =0;i<10;i++){ String server=testRobinRandom.RobinRandom(); System.out.println(server); } } }
5.源地址哈希法
宝马会炸金花import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; public class ipHash { // 1.界说map, key-ip,value-weight static Map<String,Integer> ipMap=new HashMap<>(); static { ipMap.put("192.168.13.1",1); ipMap.put("192.168.13.2",2); ipMap.put("192.168.13.3",4); } public String ipHash(String clientIP){ Map<String,Integer> ipServerMap=new ConcurrentHashMap<>(); ipServerMap.putAll(ipMap); // 2.取出来key,放到set中 Set<String> ipset=ipServerMap.keySet(); // 3.set放到list,要轮回list取出 ArrayList<String> iplist=new ArrayList<String>(); iplist.addAll(ipset); //对ip的hashcode值取尾数,每次齐不异的 int hashCode=clientIP.hashCode(); int serverListsize=iplist.size(); int pos=hashCode%serverListsize; return iplist.get(pos); } public static void main(String[] args) { ipHash iphash=new ipHash(); String servername= iphash.ipHash("192.168.21.2"); System.out.println(servername); } }追思
迎难而上,沿途加油!