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