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);