美文网首页
Dubbo专题:1.负载均衡

Dubbo专题:1.负载均衡

作者: 北交吴志炜 | 来源:发表于2019-02-20 16:33 被阅读0次

dubbo的负载均衡实现类有
ConsistentHashLoadBalance 一致性hash,
LeastActiveLoadBalance 最少活跃调用,
RandomLoadBalance随机权重,
RoundRobinLoadBalance 轮询
他们的实现类都是AbstractLoadBalance

    public <T> Invoker<T> select(List<Invoker<T>> invokers, URL url, Invocation invocation) {
        if (CollectionUtils.isEmpty(invokers)) {
            return null;
        }
        if (invokers.size() == 1) {
            return invokers.get(0);
        }
        return doSelect(invokers, url, invocation);
    }

    protected abstract <T> Invoker<T> doSelect(List<Invoker<T>> invokers, URL url, Invocation invocation);

select方法就是从invoker列表(服务列表)中选出一个invoker,实现类就是去实现这个doSelect方法。

RandomLoadBalance
每个服务对应一个权重,算法根据权重,计算一个总的权重和,然后使用随机数映射来获取负载结果
比如三个服务列表,权重分别是1,2,3 那么权重总和是6,生成一个最大6的随机数,生成1调用1号服务,生成2,3调用2号服务,其余调用3号服务,调用次数较多时,可以近似均匀的按权重分布,调用次数少时,可能不均匀。

LeastActiveLoadBalance
每一个服务对应一个活跃数active,初始0,收到请求,活跃数加1,完成请求,活跃数减1。活跃数越多,说明hung在该服务器的请求就越多,活跃数越少,说明该服务器越清闲。该算法将请求优先分配给活跃数最小的服务器,会结合权重

ConsistentHashLoadBalance

虚拟节点结合hash环的一种负载机制。

RoundRobinLoadBalance

最新版重构参考自 Nginx 的平滑加权轮询负载均衡。每个服务器对应两个权重,分别为 weight 和 currentWeight。其中 weight 是固定的,currentWeight 会动态调整,初始值为0。当有新的请求进来时,遍历服务器列表,让它的 currentWeight 加上自身权重。遍历完成后,找到最大的 currentWeight,并将其减去权重总和,然后返回相应的服务器即可。

相关文章

  • Dubbo专题:1.负载均衡

    dubbo的负载均衡实现类有ConsistentHashLoadBalance 一致性hash,LeastActi...

  • 深入Dubbo 源码解析 — 负载均衡LoadBalance

    技术点 面试中Dubbo负载均衡常问的几点 常见负载均衡算法简介 Dubbo 官方文档介绍 Dubbo 负载均衡的...

  • Dubbo高级编程

    Dubbo 的负载均衡 在集群负载均衡时,Dubbo 提供了多种均衡策略,缺省为 random 随机调用。 dub...

  • Dubbo的负载均衡策略

    Dubbo内置了4种负载均衡策略 RandomLoadBalance:随机负载均衡。随机的选择一个。是Dubbo的...

  • dubbo负载均衡策略

    在集群负载均衡时,Dubbo提供了多种均衡策略,缺省为random随机调用。 可以自行扩展负载均衡策略,参见:负载...

  • Dubbo 负载均衡机制

    [TOC] 前言 本文将带着以下的问题去学习 Dubbo 的负载均衡机制。 负载均衡是什么和有什么用?Dubbo提...

  • Dubbo入门学习--负载均衡策略(4)

    Dubbo入门学习--负载均衡策略 负载均衡 Random LoadBalance 随机,按权重设置随机概率。 在...

  • Dubbo的服务治理

    负载均衡 Dubbo 里面默认就集成了负载均衡的算法和实现,默认提供了 4 中负载均衡实现: 权重随机:round...

  • Dubbo的负载均衡

    在集群负载均衡时,Dubbo 提供了多种均衡策略,缺省为 random 随机调用。 负载均衡策略 Random L...

  • Dubbo的负载均衡策略&容错策略

    dubbo的负载均衡策略 RandomLoadBalance 随机调用负载均衡 默认方式该类实现了抽象的Abs...

网友评论

      本文标题:Dubbo专题:1.负载均衡

      本文链接:https://www.haomeiwen.com/subject/zxuhyqtx.html