zoukankan      html  css  js  c++  java
  • dubbo负载均衡策略

    121212
    dubbo负载均衡策略
    RandomLoadBalance--随机负载均衡
    默认情况下,dubbo是RandomLoadBalance,随机调用实现负载均衡,可以对不同provider设置不同的权重,会按照权重来进行负载均衡,权重越大分配流量分配越高,一般实用默认就可以。

    RoundRobinLoadBalance--循环负载均衡
    默认是均匀的将流量打到各个节点的机器上,但是如果各个机器的性能不一样,容易导致性能差的机器负载过高,所以需要调整权重,让性能差的机器承载权重小一些,流量少一些。

    LeastActiveLoadBalance
    最小活跃数负载均衡,活跃调用数越小,表明该服务提供者效率越高,单位时间内可处理更多的请求,那么此时请求会优先分配给该服务的提供者。
    最小活跃数负载均衡算法的基本思想是:
    每个服务提供者对应着一个活跃数,active。初始情况下,所有服务提供者的active都是0,每当收到一个请求,对应的服务提供者的active+1,处理完请求后,active-1.所以服务提供者性
    能越好,处理请求的效率就越高,那么active也会下降的越快,那么可以给这样的服务提供者优先分配强求。
    LeastActiveLoadBalance引入了权重,是基于加权最小活跃数算法。

    ConsistentHashLoadBalance
    一致性hash负载均衡算法,相同请求参数一定分发到一个provider上去,provider挂掉的时候,会基于虚拟节点均匀的分配剩余的流量,都懂不会太大,如果需要的不是随机负载均衡,是要一
    类请求到一个节点,那就走一致性hash策略。

    dubbo 集群容错策略

    Failover Cluster 模式
    失败自动切换,自动重试其他机器,默认就是这个,常见读操作。

    Failfast Cluster 模式
    一次调用失败就立即失败,常见于非幂等性的写操作,比如新增一条记录。

    Failsafe Cluster 模式
    出现异常时忽略掉,常用于不重要的接口调用,比如记录日志。

    Failback Cluster 模式
    失败后自动记录请求,然后定时重发,比较适合用于写消息队列。

    Forking Cluster 模式
    并行调用多个provider,只要又一个成功就立即返回,常用于实时性要求比较高的读操作,但是会浪费更多的服务资源,可通过“forks=2”来进行设置最大并行数

    Broadcast Cluster 模式
    逐个调用所有的provider,任何一个provider出错则报错,通常用于通知所有提供者更新缓存活着日志等本地资源信息。

    dubbo动态代理策略
    默认使用javassist动态字节码生成,创建代理类,但是可以通过spi扩展机制,配置自己的动态代理策略。


  • 相关阅读:
    正则表达式详解
    js前端性能优化之函数节流和函数防抖
    Vue 给axios做个靠谱的封装(报错,鉴权,跳转,拦截,提示)
    你所误解的微信公众号开发、以及微信公众号网页授权、接收url跳转参数等问题
    JavaScript 复杂判断的更优雅写法
    秒懂 this(带你撸平this)
    Vue.js 3.0 新特性预览
    完美平滑实现一个“回到顶部”
    从插入排序到希尔排序
    LWIP协议中tcp_seg结构相关指针的个人理解
  • 原文地址:https://www.cnblogs.com/lalalazar/p/13848696.html
Copyright © 2011-2022 走看看