1. 程式人生 > >負載均衡的幾種演算法Java實現程式碼

負載均衡的幾種演算法Java實現程式碼

複製程式碼
package class2.zookeeper.loadbalance;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Set;

/**
 * 加權隨機載均衡演算法
 * @author guoy
 *
 */
public class TestWeightRandom {
    
    static
Map<String,Integer> serverWeigthMap = new HashMap<String,Integer>(); static{ serverWeigthMap.put("192.168.1.12", 1); serverWeigthMap.put("192.168.1.13", 1); serverWeigthMap.put("192.168.1.14", 2); serverWeigthMap.put("192.168.1.15", 2); serverWeigthMap.put(
"192.168.1.16", 3); serverWeigthMap.put("192.168.1.17", 3); serverWeigthMap.put("192.168.1.18", 1); serverWeigthMap.put("192.168.1.19", 2); } public static String weightRandom() { //重新建立一個map,避免出現由於伺服器上線和下線導致的並發問題 Map<String,Integer> serverMap = new
HashMap<String,Integer>(); serverMap.putAll(serverWeigthMap); //獲取ip列表list Set<String> keySet = serverMap.keySet(); Iterator<String> it = keySet.iterator(); List<String> serverList = new ArrayList<String>(); while (it.hasNext()) { String server = it.next(); Integer weight = serverMap.get(server); for (int i = 0; i < weight; i++) { serverList.add(server); } } Random random = new Random(); int randomPos = random.nextInt(serverList.size()); String server = serverList.get(randomPos); return server; } public static void main(String[] args) { String serverIp = weightRandom(); System.out.println(serverIp); } }
複製程式碼

相關推薦

負載均衡演算法Java實現程式碼

package class2.zookeeper.loadbalance; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import jav

Java程式碼實現負載均衡演算法

版權宣告:本文為博主原創文章,未經博主允許不得轉載。    https://blog.csdn.net/u012904383/article/details/78358354 前言:        

求線段交點"的演算法(js實現,完整版)

“求線段交點”是一種非常基礎的幾何計算, 在很多遊戲中都會被使用到. 下面我就現學現賣的把最近才學會的一些”求線段交點”的演算法說一說, 希望對大家有所幫助. 本文講的內容都很初級, 主要是面向和我一樣的初學者, 所以請各位演算法帝們輕拍啊 嘎嘎 引

[面試][演算法] 常見10演算法 java 實現

摘要:面試也是一門學問,在面試之前做好充分的準備則是成功的必須條件,而程式設計師在程式碼面試時,常會遇到編寫演算法的相關問題,比如排序、二叉樹遍歷等等。 在程式設計師的職業生涯中,演算法亦算是一門基礎課程,尤其是在面試的時候,很多公司都會讓程式設計師編寫一些演算

LVS負載均衡模式的實現

地址轉換 基礎 可見 技術 image 實現 被集成 設置 log 何為lvs負載均衡? lvs負載均衡(linux virtual server)又名linux虛擬服務器。由章文嵩博士主導的負載均衡項目,目前LVS已經被集成到Linux內核模塊中。該項目在Linux內核中

簡單的負載均衡算法及其Java代碼實現

hsb p12 vld tar www. 簡單的 sin all .com jdsbuy肇岡唾氈瀉節http://www.docin.com/app/user/userinfo?userid=179258715a4cqu2瘟萄優歐壹讜http://huiyi.docin.c

排序演算法java實現

沒有配圖,過幾天補上 package com.sort; public class Sort { /** * 插入排序 * 原理:往有序的子陣列選擇一個合適的位置插進去 * */ public void insertSort(int sort[

負載均衡演算法和快取的淘汰策略

一、負載均衡演算法 1、輪詢法   將請求按順序輪流地分配到後端伺服器上,它均衡地對待後端的每一臺伺服器,而不關心伺服器實際的連線數和當前的系統負載。 2、隨機法 通過系統的隨機演算法,根據後端伺服器的列表大小值來隨機選取其中的一臺伺服器

常見排序演算法java實現

public class sort { public static void main(String[] args) { int[] a= {10,1,35,14,9,12,11}; int c=(int)Math.floor(Math.random()*7);

java排序簡單實現(快速排序,氣泡排序,直接插入排序)

package Test; import com.alibaba.fastjson.JSONObject; public class Test { static int[] arrays = new int[] { 3, 10, 11, 1, 8, 2, 9, 4 }; // index

6排序演算法java實現

6種排序演算法 氣泡排序 選擇排序 插入排序 計數排序 快速排序 歸併排序 1)氣泡排序       相鄰的兩個數字比較排序,先將最大的交換到最後面,然後重複。 程式碼實現 2)選擇排序       從第一個位置開始,用某個位置依次與後邊所有元

3. 排序通常有多種演算法,如氣泡排序、插入排序、選擇排序、希爾排序、歸併排序、快速排序,請選擇任意2java實現 [分值:20] 您的回答:(空) (簡答題需要人工評分)

3. 排序通常有多種演算法,如氣泡排序、插入排序、選擇排序、希爾排序、歸併排序、快速排序,請選擇任意2種用java實現  [分值:20] 您的回答:(空)  (簡答題需要人工評分) package com.interview; /** * 各種排序演算法 */

排序演算法Java實現-希爾排序

/*********希爾排序先從0定義再到gap*********************/ public static int[] shell2(int []num,int len){

排序演算法-Java實現

1.選擇排序 基本思想:在要排序的一組數中,選出最小的一個數與第一個位置的數交換;然後在剩下的數當中再找最小的與第二個位置的數交換,如此迴圈到倒數第二個數和最後一個數比較為止。 程式碼實現 p

js實現常見的演算法(陣列去重、字元統計、二分查詢等)

1、陣列去重:利用物件屬性進行篩選 function filter(arr){ let obj={}; let newArr=[]; for (let i=0;i<arr.

演算法 -- Java實現快速排序(圖解 + 程式碼實現)

排序思想: 通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料都要小,然後再按此方法對這兩部分資料分別進行快速排序,整個排序過程可以遞迴進行,以此達到整個資

常見排序演算法Java實現

一、氣泡排序 氣泡排序實現簡單,但執行效率較慢。演算法思想是,設要排序的為陣列A中的元素,遍歷A.length-1次,每次找出待排序元素中最小的值放在相應位置,如:第一次遍歷陣列下標為A.length-1 到0的元素,將最小的值放在A[0]的位置,第二次遍歷

Java】—— java Web 啟動時自動執行程式碼方式(總有些程式碼需要在虛擬機器啟動時執行)

Web容器啟動後執行程式碼的幾種方式其執行順序為:4===>5===>1===>2===>3即指定init-method的Bean開始執行接著實現Spring的Bean後置處理器開始執行然後是Servlet的監聽器執行再接下來是Servlet的過濾器執

擴充套件歐里德演算法Java實現和青蛙相遇

問題銜接: http://poj.org/problem?id=1061 Description 兩隻青蛙在網上相識了,它們聊得很開心,於是覺得很有必要見一面。它們很高興地發現它們住在同一條緯度線上,於是它們約定各自朝西跳,直到碰面為止。可是它們出發之前忘記了一件很重要

演算法 -- Java實現氣泡排序(圖解 + 程式碼實現)

排序思想: 相鄰元素兩兩比較,大的往後放,第一次完畢,最大值出現在了最大索引處(每比較完一趟,就選出一個最大值放到了後面),同理繼續可以得到一個排好序的陣列 排序圖解: 排序規