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 <[email protected]>
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);