負載均衡,隨機加權重演算法實現

2021-08-28 02:20:46 字數 479 閱讀 4268

例如輸入資料 [(「a」,3),(「b」,3),(「c」,9),(「d」,1)], 權重分別為3,3,9,1

具體演算法是將3,3,9,1 對映到一維座標中,0-3-6-15-16,取得乙個隨機數,範圍是0,16, 看結果落在哪個區間就返回哪個數值

已下以python**為例子:

import random

import collections

def get_value(maxvalue, seq):

r = random.randint(0,maxvalue)

for i in seq:

if r <= i[1]:

return i[0]

test = [(「a」,3),(「b」,3),(「c」,9),(「d」,1)]

m, s = get_seq(test)

print(collections.counter(p))

counter()

負載均衡演算法 加權輪詢

輪詢演算法沒有考慮每台伺服器的處理能力,實際情況是每台伺服器的配置 安裝的業務應用等不同,其處理能力會不一樣。所以,加權輪詢演算法的原理就是 根據伺服器的不同處理能力,給每個伺服器分配不同的權值,使其能接受相應權值數的服務請求。首先看乙個簡單的nginx負載均衡配置。按照上述配置,nginx每收到7...

負載均衡權重係數演算法 C

為保證程式的穩定性和質量,記憶體要求使用智慧型指標 c 11 同時使用了boost 智慧型指標使用c 11 1 自定義標準標頭檔案se std.h ifndef h cf4bc297 2737 4b2e ab51 c0915f823960 define h cf4bc297 2737 4b2e ab...

加權隨機演算法

本文參考 加權平均演算法一般應用於某個場景,有乙個集合s,裡面有a,b,c,d這四項。這時我們想隨機從中抽取一項,但是抽取的概率不同。比如我們希望抽到a的概率是50 抽到b和c的概率是20 d的概率是10 一般來說,我們可以給各項附乙個權重,抽取的概率正比於這個權重。那麼上述集合就成了 方法一 然後...