久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

Java加權負載均衡策略實現過程解析

瀏覽:2日期:2022-09-03 13:50:17

加權輪詢

后端集群每臺機器都分配一個權重,權重高得會承擔更多的流量,相反權重低的分配的流量也會少,這種策略允許后端集群機器配置差異化

java實現

import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;import org.springframework.stereotype.Controller;@Controllerpublic class IpMapController extends LogBaseController implements Runnable { private static Integer pos = 0; // 待scp的Ip列表,Key代表Ip,Value代表該Ip的權重 public static HashMap<String, Integer> serverWeightMap = new HashMap<String, Integer>(); static { serverWeightMap.put('127.0.0.1', 1); serverWeightMap.put('127.0.0.2', 1); serverWeightMap.put('127.0.0.3', 1); serverWeightMap.put('127.0.0.4', 1); } public void run() { // 重建一個Map,避免服務器的上下線導致的并發問題 Map<String, Integer> serverMap = new HashMap<String, Integer>(); serverMap.putAll(serverWeightMap); // 取得Ip地址List Set<String> keySet = serverMap.keySet(); Iterator<String> iterator = keySet.iterator(); // 根據權重組成iplist List<String> serverList = new ArrayList<String>(); while (iterator.hasNext()) { String server = iterator.next(); int weight = serverMap.get(server); for (int i = 0; i < weight; i++) serverList.add(server); } String server = null; synchronized (pos) { if (pos >= keySet.size()){ pos = 0; } server = serverList.get(pos); System.out.println('server:' + server + ',pos=' + pos); pos++; } } public static void main(String[] args) { IpMapController ipRunnable = new IpMapController(); for (int i = 0; i <= 10; i++) { System.out.println('t' + i); new Thread(ipRunnable).start(); } }}

多線程輸出結果

t0t1t2t3t4t5t6server:127.0.0.4,pos=0server:127.0.0.3,pos=1server:127.0.0.2,pos=2server:127.0.0.2,pos=2t7server:127.0.0.4,pos=0server:127.0.0.3,pos=1t8server:127.0.0.2,pos=2server:127.0.0.2,pos=2t9server:127.0.0.4,pos=0t10server:127.0.0.3,pos=1server:127.0.0.2,pos=2

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 福清市| 梨树县| 来宾市| 新丰县| 珲春市| 鄂托克前旗| 南溪县| 株洲市| 柳河县| 海阳市| 虹口区| 奎屯市| 黄梅县| 玉树县| 望城县| 永昌县| 靖江市| 亚东县| 咸阳市| 盘锦市| 乐平市| 苍梧县| 柳江县| 衡南县| 夏邑县| 文成县| 文安县| 新巴尔虎左旗| 合水县| 奎屯市| 阿克苏市| 得荣县| 兴山县| 航空| 沈阳市| 西林县| 偃师市| 托克逊县| 太和县| 凌源市| 商城县|