dubbo的容错模式

dubbo的容错模式

  • dubbo提供以下集群容错模式:
模式 功能 适用场景 使用方法
Failover 默认值。失败自动切换到其他服务器 适用于读操作或幂等性操作 如:retries=”2”
Failfast 只发起一次调用,失败立即报错 适用于非幂等性的操作,比如新增记录
Failsafe 忽略失败 用于写入审计日志等操作
Failback 失败自动恢复,后台记录失败请求,定时重发 通常用于消息通知操作
Forking 并行调用多个服务器,只要一个成功即返回 用于实时性要求较高的读操作 如:通过forks=”2”来设置最大并行数
Broadcast 广播调用所有提供者,逐个调用,任意一台报错则报错 用于通知所有提供者更新缓存或日志

示例:

"org.xx.xx.xx.XXService" version="1.0.0"
     cluster="failover" retries="2" timeout="100" ref="XXCounterService" protocol="dubbo" >
     name="querUserCount" timeout="80" retries="2" />

扩展:
如果我们觉得Dubbo内置提供的几种集群容错模式都不能满足应用需要,也可以定制实现自己的集群容错模式,只需要实现接口com.alibaba.dubbo.rpc.cluster.Cluster即可,接口定义如下所示:

@SPI(FailoverCluster.NAME)
public interface Cluster {

    /**
     * Merge the directory invokers to a virtual invoker.
     * @param 
     * @param directory
     * @return cluster invoker
     * @throws RpcException
     */
    @Adaptive
     Invoker join(Directory directory) throws RpcException;

}

.

你可能感兴趣的:(框架)