类com.alibaba.dubbo.rpc.cluster.support.AvailableCluster源码实例Demo

下面列出了怎么用com.alibaba.dubbo.rpc.cluster.support.AvailableCluster的API类实例代码及写法,或者点击链接到github查看源代码。

@Override
protected TracingCollector createTracingCollector(List<URL> urls) {

    Invoker<TracingCollector> invoker;
    if(urls.size()==1){
        invoker = protocol.refer(TracingCollector.class,urls.get(0));
    }else{
        List<Invoker<TracingCollector>> invokers = new ArrayList<Invoker<TracingCollector>>();
        URL registryURL = null;
        for (URL url : urls) {
            invokers.add(protocol.refer(TracingCollector.class, url));
            if (Constants.REGISTRY_PROTOCOL.equals(url.getProtocol())) {
                registryURL = url; // 用了最后一个registry url
            }
        }
        if (registryURL != null) { // 有 注册中心协议的URL
            // 对有注册中心的Cluster 只用 AvailableCluster
            URL u = registryURL.addParameter(Constants.CLUSTER_KEY, AvailableCluster.NAME);
            invoker = cluster.join(new StaticDirectory(u, invokers));
        }  else { // 不是 注册中心的URL
            invoker = cluster.join(new StaticDirectory(invokers));
        }
    }
    TracingCollector tracingCollector = proxyFactory.getProxy(invoker);
    return tracingCollector;
}
 
 类所在包
 类方法
 同包方法