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

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

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

瀏覽:8日期: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
相關文章:
主站蜘蛛池模板: 海城市| 阿尔山市| 丹巴县| 乐都县| 桦南县| 正定县| 蚌埠市| 肥城市| 禹城市| 西林县| 芦溪县| 定日县| 永修县| 安多县| 岳阳县| 临汾市| 兰州市| 漯河市| 景泰县| 商河县| 元江| 长丰县| 甘谷县| 区。| 洮南市| 石屏县| 广平县| 武川县| 梅州市| 玉龙| 南宫市| 万全县| 手游| 辽宁省| 蒲城县| 开远市| 邛崃市| 崇阳县| 土默特左旗| 分宜县| 治多县|