Dubbo 的負載均衡策略 之 隨機策略

1 、什麼是負載均衡策略

有多臺服務器,訪問每臺服務器的次數是均衡的,不致某一臺或幾臺服務器訪問次數過多二負載過大掛掉

Dubbo 提供瞭如下 4 個負載均衡策略。
在這裏插入圖片描述

2、隨機負載均衡策略

Dubbo 中的隨機負載均衡策略的實現類是: RandomLoadBalance ,它分爲 2 種情況。

被調用服務的所有實例都是同等權重的,則隨機生成一個從 0 到 實例數量 - 1 的數,並返回對應的實例。

比如:總共有 3 個實例 invokers,3 個實例的權重都爲 100,隨機生成一個從 0 到 2 的數,假設生成 2,則返回 invokers[2],也就是返回了第 3 個實例。

被調用服務的所有實例的權重不一,則累計所有權重 totalWeight,隨機生成一個從 0 到 totalWeight - 1 的數 offset,定位 offset 所在的位置,並返回對應位置的實例。

比如:下圖有 5 個實例,每個實例的權重不一樣,分別如表格所示,要選擇實例的時候,隨機生成一個從 0 到 649 的數,假設生成 251,則落在 250 - 349 的範圍內,也就是選中 C 實例。
在這裏插入圖片描述
這 2 種情況有什麼不同呢?
第一種情況就是純隨機的策略;第二種情況則在隨機的基礎上,加上了權重因素,權重越大,被選擇的可能性就越大。

3. 隨機策略的優缺點

優點:實現簡單,水平擴展方便

缺點:當機器有異常的時候,不能根據機器的異常情況分配。

4、RandomLoadBalance 源碼

在這裏插入圖片描述

原文鏈接:https://mp.weixin.qq.com/s/pmcRnyCehffMtw_D38E2ng

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章