Dubbo
_躬行_
c++/java/python,用分析数据来挣钱
展开
-
一种最小活跃数的自动负载均衡算法
这篇文章的背景是参加阿里云中间件性能挑战赛的初赛。(赛址链接) 题目是为Dubbo设计一种自动负载均衡的算法,要求算法能够适应每个provider的变化动态分配请求。 Dubbo常用的4种算法 1. 轮询算法(或权重轮询算法) 根据配置好的权重,如1:m:n, 进行轮流分配的算法。先为第1台配置1个,然后第2台分配m个,第3台分配n个,之后开始新的...原创 2019-07-21 03:03:57 · 1095 阅读 · 2 评论 -
Dubbo的一种负载均衡算法(最大剩余线程数)
先贴上provider的性能要求 最小活跃数算法不靠谱(因为会将请求尽量多地分到small上),但是把最小活跃数换个角度,用线程池总线程数 - 占用线程数, 得到剩余线程数。然后按照最大剩余线程数来排序。 具体做法也很简单: 每次provider收到一个请求,就将占用线程数+1, 完成一个请求,就将占用线程数-1, 用线程池总线程数减去占用的数量,之后每次选最大的。 ...原创 2019-07-22 23:37:45 · 365 阅读 · 0 评论 -
谈谈RPC的演进史
如果一台电脑需要用到的所有功能都在本台PC上实现,那是最方便的事情了,但除非这是台超级计算机,否则就难以容纳所有的功能。因而我们就有了这样一种需求——调用在其他电脑上实现的功能。 因为我们通常关注的是结果,至于过程在哪个地方执行其实并不关心,因而就可以把我们的需求交给别的服务器并查看返回的结果就行了。就像我们下达了发射导弹的命令,千里之外的舰艇执行命令并将结果汇报给我们就行...原创 2019-07-31 23:56:23 · 527 阅读 · 0 评论 -
Dubbo的一种负载均衡算法(rtt排序)
一、 题目要求: 题目来自阿里云中间件性能挑战赛,找一种性能最佳的Dubbo负载均衡算法。 provider的性能要求 二、分析 其实一个比较能代表当前provider性能的指标就是rtt(round-trip-time,一次调用返回时间), 这一指标比剩余线程数、CPU/内存占用率、权重比值都更直接体现provider的当前性能。因此,应当尽量地去应用这一指...原创 2019-09-07 00:12:49 · 403 阅读 · 0 评论