dubbo 四种均衡负载

1.ConsistentHashLoadBalance 运用hash算法
ConsistentHashSelector 哈希算法类,在调用的时候,他会根据invokers生产对应一个hashkey,这个hashkey对应着存储着ConsistentHashSelector 。
ConsistentHashSelector 再根据参数来分析对应的invoker。
当服务有变化的时候,invokers 有了变化,导致产生新的ConsistentHashSelector ,这是保证hash负载均衡的正确性的原理。
2.RandomLoadBalance 根据各个invoker的权重,随机分布。
3.RoundRobinLoadBalance 轮询模式 :
ConcurrentMap<String, AtomicPositiveInteger> sequences(一个map的数据结构) 记载着各个接口的调用次数,然后再根据权重,进行轮询。
弊端:轮循,按公约后的权重设置轮循比率。
存在慢的提供者累积请求问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。
4.LeastActiveLoadBalance RpcStatus.getStatus记载着接口的活跃数。
最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差。
使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大

猜你喜欢

转载自blog.csdn.net/yinghonghui/article/details/82928570
今日推荐