Dubbo的一種負載均衡演算法(最大剩餘執行緒數)

2021-09-25 11:51:08 字數 513 閱讀 5704

先貼上provider的效能要求

最小活躍數演算法不靠譜(因為會將請求盡量多地分到small上),但是把最小活躍數換個角度,用執行緒池匯流排程數 - 占用執行緒數, 得到剩餘執行緒數。然後按照最大剩餘執行緒數來排序。

具體做法也很簡單: 每次provider收到乙個請求,就將占用執行緒數+1, 完成乙個請求,就將占用執行緒數-1, 用執行緒池匯流排程數減去占用的數量,之後每次選最大的。

線上表現:

這種演算法可以說在原理上並沒有什麼先進性,但表現不算差。 均值為126萬,最低124萬,最高128萬。

也許大道至減,看不少人用的加權隨機、加權輪詢等很簡單的演算法,也能跑127萬左右。

已經有幾個選手跑到131萬了,所以還有很大的優化空間,更多方法後續更新。 

一種負載均衡的演算法

今天晚上搞 走讀,一夥人在一起就一段 糾結了半天 大概是下面這個樣子 for int i 0 i urls.size i 這樣的每個使用者有乙個userid,當使用者點播節目的時候,需要去鑑權伺服器進行鑑權,一台鑒權伺服器可能無法應付過多的使用者,這裡布置了多台伺服器,伺服器的位址存放在urls這個...

dubbo 四種均衡負載

1.consistenthashloadbalance 運用hash演算法 consistenthashselector 雜湊演算法類,在呼叫的時候,他會根據invokers生產對應乙個hashkey,這個hashkey對應著儲存著consistenthashselector consistenth...

Dubbo的負載均衡

dubbo是乙個分布式服務框架,能避免單點故障和支援服務的橫向擴容。乙個服務通常會部署多個例項。如何從多個服務 provider 組成的集群中挑選出乙個進行呼叫,就涉及到乙個負載均衡的策略。在討論負載均衡之前,我想先解釋一下這3個概念。負載均衡 集群容錯 服務路由 這3個概念容易混淆。他們都描述了怎...