目录
RandomLoadBalance
RandomLoadBalance即随机调用实现负载均衡是Dubbo默认的一种策略,加权随机算法对provider不同实例设置不同的权重,按照权重来负载均衡,权重越大分配流量越高,一般用这个默认的就可以了。
算法思想
假设有一组服务器servers = [A, B, C]
,他们对应的权重为weights = [5, 3, 2]
,权重总和为 10。现在把这些权重值平铺在一维坐标值上,[0, 5)
区间属于服务器A,[5, 8)
区间属于服务器 B,[8, 10)
区间属于服务器C。接下来通过随机数生成器生成一个范围在[0, 10)
之间的随机数,然后计算这个随机数会落到哪个区间上。比如数字3会落到服务器A对应的区间上,此时返回服务器A即可。权重越大的机器,在坐标轴上对应的区间范围就越大,因此随机数生成器生成的数字就会有更大的概率落到此区间内。只要随机数生成器产生的随机数分布性很好,在经过多次选择后,每个服务器被选中的次数比例接近其权重比例。比如经过一万次选择后,服务器A被选中的次数大约为5000次,服务器B被选中的次数约为3000次,服务器C被选中的次数约为2000次。
RoundRobinLoadBalance
8核 + 16G机器申请了2台,4核 + 8G的机器一台