This is an automated email from the ASF dual-hosted git repository. liujun pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo.git
commit 0a746cc262a4155e346922af919dc5acc8ffd07b Author: ken.lj <[email protected]> AuthorDate: Wed Nov 6 16:26:18 2019 +0800 uncomment router filter --- .../registry/integration/RegistryDirectory.java | 61 ++++++++-------------- 1 file changed, 23 insertions(+), 38 deletions(-) diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryDirectory.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryDirectory.java index 7b90501..939ec54 100644 --- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryDirectory.java +++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryDirectory.java @@ -18,6 +18,7 @@ package org.apache.dubbo.registry.integration; import org.apache.dubbo.common.URL; import org.apache.dubbo.common.URLBuilder; +import org.apache.dubbo.common.Version; import org.apache.dubbo.common.config.configcenter.DynamicConfiguration; import org.apache.dubbo.common.extension.ExtensionLoader; import org.apache.dubbo.common.logger.Logger; @@ -34,6 +35,7 @@ import org.apache.dubbo.remoting.Constants; import org.apache.dubbo.rpc.Invocation; import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.Protocol; +import org.apache.dubbo.rpc.RpcException; import org.apache.dubbo.rpc.cluster.Cluster; import org.apache.dubbo.rpc.cluster.Configurator; import org.apache.dubbo.rpc.cluster.Router; @@ -570,44 +572,27 @@ public class RegistryDirectory<T> extends AbstractDirectory<T> implements Notify @Override public List<Invoker<T>> doList(Invocation invocation) { -// if (forbidden) { -// // 1. No service provider 2. Service providers are disabled -// throw new RpcException(RpcException.FORBIDDEN_EXCEPTION, "No provider available from registry " + -// getUrl().getAddress() + " for service " + getConsumerUrl().getServiceKey() + " on consumer " + -// NetUtils.getLocalHost() + " use dubbo version " + Version.getVersion() + -// ", please check status of providers(disabled, not registered or in blacklist)."); -// } -// -// if (multiGroup) { -// return this.invokers == null ? Collections.emptyList() : this.invokers; -// } -// -// List<Invoker<T>> invokers = null; -// try { -// // Get invokers from cache, only runtime routers will be executed. -// invokers = routerChain.route(getConsumerUrl(), invocation); -// } catch (Throwable t) { -// logger.error("Failed to execute router: " + getUrl() + ", cause: " + t.getMessage(), t); -// } -// -// -// // FIXME Is there any need of failing back to Constants.ANY_VALUE or the first available method invokers when invokers is null? -// /*Map<String, List<Invoker<T>>> localMethodInvokerMap = this.methodInvokerMap; // local reference -// if (localMethodInvokerMap != null && localMethodInvokerMap.size() > 0) { -// String methodName = RpcUtils.getMethodName(invocation); -// invokers = localMethodInvokerMap.get(methodName); -// if (invokers == null) { -// invokers = localMethodInvokerMap.get(Constants.ANY_VALUE); -// } -// if (invokers == null) { -// Iterator<List<Invoker<T>>> iterator = localMethodInvokerMap.values().iterator(); -// if (iterator.hasNext()) { -// invokers = iterator.next(); -// } -// } -// }*/ -// return invokers == null ? Collections.emptyList() : invokers; - return invokers; + if (forbidden) { + // 1. No service provider 2. Service providers are disabled + throw new RpcException(RpcException.FORBIDDEN_EXCEPTION, "No provider available from registry " + + getUrl().getAddress() + " for service " + getConsumerUrl().getServiceKey() + " on consumer " + + NetUtils.getLocalHost() + " use dubbo version " + Version.getVersion() + + ", please check status of providers(disabled, not registered or in blacklist)."); + } + + if (multiGroup) { + return this.invokers == null ? Collections.emptyList() : this.invokers; + } + + List<Invoker<T>> invokers = null; + try { + // Get invokers from cache, only runtime routers will be executed. + invokers = routerChain.route(getConsumerUrl(), invocation); + } catch (Throwable t) { + logger.error("Failed to execute router: " + getUrl() + ", cause: " + t.getMessage(), t); + } + + return invokers == null ? Collections.emptyList() : invokers; } @Override
