Dubbo源码学习--AvailableCluster集群容错(二)
AvailableCluster
简单的集群容错方式,如果服务提供者可用就直接调用服务,并且不需要任何负载均衡处理。
public class AvailableCluster implements Cluster {
public static final String NAME = "available";
public <T> Invoker<T> join(Directory<T> directory) throws RpcException {
return new AbstractClusterInvoker<T>(directory) {
public Result doInvoke(Invocation invocation, List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {
for (Invoker<T> invoker : invokers) {
//如果服务可用就直接调用,也不需要负载均衡
if (invoker.isAvailable()) {
return invoker.invoke(invocation);
}
}
throw new RpcException("No provider available in " + invokers);
}
};
}
}
还没有评论,来说两句吧...