dubbo 四種均衡負載

2021-08-28 16:13:53 字數 676 閱讀 4224

1.consistenthashloadbalance 運用hash演算法

consistenthashselector 雜湊演算法類,在呼叫的時候,他會根據invokers生產對應乙個hashkey,這個hashkey對應著儲存著consistenthashselector 。

consistenthashselector 再根據引數來分析對應的invoker。

當服務有變化的時候,invokers 有了變化,導致產生新的consistenthashselector ,這是保證hash負載均衡的正確性的原理。

2.randomloadbalance 根據各個invoker的權重,隨機分布。

3.roundrobinloadbalance 輪詢模式 :

concurrentmapsequences(乙個map的資料結構) 記載著各個介面的呼叫次數,然後再根據權重,進行輪詢。

弊端:輪循,按公約後的權重設定輪循比率。

存在慢的提供者累積請求問題,比如:第二台機器很慢,但沒掛,當請求調到第二台時就卡在那,久而久之,所有請求都卡在調到第二台上。

4.leastactiveloadbalance rpcstatus.getstatus記載著介面的活躍數。

最少活躍呼叫數,相同活躍數的隨機,活躍數指呼叫前後計數差。

使慢的提供者收到更少請求,因為越慢的提供者的呼叫前後計數差會越大

四種負載均衡演算法

輪詢演算法 基於雜湊環的一致性雜湊演算法 最小活躍數演算法 軟體 nginx haproxy 硬體 f5伺服器 第一台服務 權重3 第二台服務 權重2 第三台服務 權重1 那麼就維護乙個list 放入3個第一台服務 2個第二台服務 1個第一台服務,然後根據list的大小生成隨機數取出伺服器位址訪問,...

四種負載均衡演算法思想

若只是單純的使用random進行隨機的話,可以實現,但是如果伺服器的負載能力大小不一樣,就會造成配置高的伺服器處於空閒或者負載量小,而配置低的伺服器任務繁重。因此為每台伺服器 設定乙個權重來表明負載的能力大小。這是如何選取就有兩個方式,乙個是根據權重大小,向服務 器list集合中新增多少個,這樣做的...

Nginx負載均衡四種分配策略

1 輪詢 預設 每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器宕機,能自動剔除掉。2 weight weight代表權重,預設為1,權重越高被分配的客戶端越多。指定輪詢機率,weight和訪問比率成正比,使用者後端伺服器效能不均的情況。例如 upstream myserver3 ip ...