频道栏目
首页 > 资讯 > 其他 > 正文

Dubbo源码学习--FailsafeCluster集群容错

18-03-28        来源:[db:作者]  
收藏   我要投稿

Failsafe Cluster

失败安全,出现异常时,直接忽略。通常用于写入审计日志等操作。

在FailsafeCluster中服务的调用实现实在FailsafeClusterInvoker中完成的

public class FailsafeCluster implements Cluster {

    public final static String NAME = "failsafe";

    public  Invoker join(Directory directory) throws RpcException {
        return new FailsafeClusterInvoker(directory);
    }

}

FailsafeClusterInvoker中简单来说通过负载均衡查找服务,调用服务如果调用失败则直接返回空的结果。

public class FailsafeClusterInvoker extends AbstractClusterInvoker {
    private static final Logger logger = LoggerFactory.getLogger(FailsafeClusterInvoker.class);

    public FailsafeClusterInvoker(Directory directory) {
        super(directory);
    }

    public Result doInvoke(Invocation invocation, List<>> invokers, LoadBalance loadbalance) throws RpcException {
        try {
            checkInvokers(invokers, invocation);
			//负载均衡算法查找服务
            Invoker invoker = select(loadbalance, invocation, invokers, null);
			//直接调用返回
            return invoker.invoke(invocation);
        } catch (Throwable e) {
            logger.error("Failsafe ignore exception: " + e.getMessage(), e);
			//如果失败则返回空的结果
            return new RpcResult(); // ignore
        }
    }
}
相关TAG标签
上一篇:win10汇编环境配置教程
下一篇:EffectiveC++条款10到12
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站