You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2021/06/15 09:43:05 UTC

[dubbo] branch master updated: fix multi-registry bug (#8034)

This is an automated email from the ASF dual-hosted git repository.

albumenj pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/master by this push:
     new a7697f8  fix multi-registry bug (#8034)
a7697f8 is described below

commit a7697f818efaccf458618b9d9e7f79f5473f1445
Author: xiaoheng1 <20...@qq.com>
AuthorDate: Tue Jun 15 17:42:52 2021 +0800

    fix multi-registry bug (#8034)
---
 .../org/apache/dubbo/config/ReferenceConfig.java   | 24 +++-------------------
 1 file changed, 3 insertions(+), 21 deletions(-)

diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
index e699000..1d55694 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
@@ -380,33 +380,15 @@ public class ReferenceConfig<T> extends ReferenceConfigBase<T> {
                 List<Invoker<?>> invokers = new ArrayList<Invoker<?>>();
                 URL registryURL = null;
                 for (URL url : urls) {
-                    Invoker<?> referInvoker = REF_PROTOCOL.refer(interfaceClass, url);
-                    if (shouldCheck()) {
-                        if (referInvoker.isAvailable()) {
-                            invokers.add(referInvoker);
-                        } else {
-                            referInvoker.destroy();
-                        }
-                    } else {
-                        invokers.add(referInvoker);
-                    }
+                    // For multi-registry scenarios, it is not checked whether each referInvoker is available.
+                    // Because this invoker may become available later.
+                    invokers.add(REF_PROTOCOL.refer(interfaceClass, url));
 
                     if (UrlUtils.isRegistry(url)) {
                         registryURL = url; // use last registry url
                     }
                 }
 
-                if (shouldCheck() && invokers.size() == 0) {
-                    throw new IllegalStateException("Failed to check the status of the service "
-                            + interfaceName
-                            + ". No provider available for the service "
-                            + (group == null ? "" : group + "/")
-                            + interfaceName +
-                            (version == null ? "" : ":" + version)
-                            + " from the multi registry cluster"
-                            + " use dubbo version " + Version.getVersion());
-                }
-
                 if (registryURL != null) { // registry url is available
                     // for multi-subscription scenario, use 'zone-aware' policy by default
                     String cluster = registryURL.getParameter(CLUSTER_KEY, ZoneAwareCluster.NAME);