分布式的几件小事(四)dubbo负载均衡策略和集群容错策略

1.dubbo负载均衡策略

random loadbalance 策略
默认状况下,dubbo是random loadbalance 随机调用实现负载均衡,能够对provider不一样实例设置不一样的权重,会按照权重来进行负载均衡,权重越大分配的流量越高,通常就用这个默认的就能够了。java

roundrobin loadbalance策略
这个策略默认会将请求均匀的分布到各个provider上面,可是若是各个机器的性能不同,很容易到杭州性能差 的机器负载太高。算法

leastactive loadbalance策略
自动感知机器性能,若是某个机器性能差,那么这个机器接收到的请求就会越少。接收到的请求越少,机器就越不活跃,那么不活跃的机器就会接到更少的请求。负载均衡

consistanthash loadbalance策略
一致性hash算法,相同参数的请求必定发送到同一个provider上面去,provider挂掉的时候,会基于虚拟节点均匀分配剩余的请求,抖动不会太大。dom

2.dubbo的集群容错策略

failover cluster策略
调用一个provider失败,自动切换到其余的provider上面去调用,默认策略,常见于读操做。ide

failfast cluster策略
一次调用provider失败就当即失败,常见于写操做。性能

failsafe cluster策略
出现异常时忽略掉,常见于不重要的接口调用,好比日志记录。代理

faliback cluster策略
失败后后台自动记录请求,而后定时重发,比较适合写消息队列这种操做。日志

forking cluster策略
并行调用多个provider,只要有一个成功就当即返回。接口

broadcast cluster策略
逐个调用全部的provider。队列

3.dubbo的动态代理策略

默认使用javassist动态字节码生成,建立代理类。 能够经过spi机制扩展配置本身的动态代理策略。

相关文章
相关标签/搜索