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

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

commit 598ffd04769fa2893ae1a7ccc1900b6c300bda0f
Author: Albumen Kevin <[email protected]>
AuthorDate: Thu Aug 19 17:40:25 2021 +0800

    Fix nacos group inviable in consumer side (#8533)
    
    * Fix nacos group inviable in consumer side
    
    * remove getGroup method
---
 .../registry/nacos/NacosNamingServiceWrapper.java  |  4 ++++
 .../registry/nacos/NacosServiceDiscovery.java      | 24 ++++++++++++++--------
 .../nacos/util/NacosNamingServiceUtils.java        | 15 --------------
 3 files changed, 19 insertions(+), 24 deletions(-)

diff --git 
a/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosNamingServiceWrapper.java
 
b/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosNamingServiceWrapper.java
index 536d9dc0..c2f817a 100644
--- 
a/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosNamingServiceWrapper.java
+++ 
b/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosNamingServiceWrapper.java
@@ -74,6 +74,10 @@ public class NacosNamingServiceWrapper {
         return namingService.selectInstances(handleInnerSymbol(serviceName), 
healthy);
     }
 
+    public List<Instance> selectInstances(String serviceName, String group, 
boolean healthy) throws NacosException {
+        return namingService.selectInstances(handleInnerSymbol(serviceName), 
group, healthy);
+    }
+
     public void shutdown() throws NacosException {
         this.namingService.shutDown();
     }
diff --git 
a/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosServiceDiscovery.java
 
b/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosServiceDiscovery.java
index fecb8ef..67f4c89 100644
--- 
a/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosServiceDiscovery.java
+++ 
b/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosServiceDiscovery.java
@@ -27,6 +27,7 @@ import 
org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;
 import 
org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;
 import org.apache.dubbo.registry.nacos.util.NacosNamingServiceUtils;
 
+import com.alibaba.nacos.api.common.Constants;
 import com.alibaba.nacos.api.exception.NacosException;
 import com.alibaba.nacos.api.naming.listener.NamingEvent;
 import com.alibaba.nacos.api.naming.pojo.Instance;
@@ -39,7 +40,6 @@ import java.util.stream.Collectors;
 
 import static org.apache.dubbo.common.function.ThrowableConsumer.execute;
 import static 
org.apache.dubbo.registry.nacos.util.NacosNamingServiceUtils.createNamingService;
-import static 
org.apache.dubbo.registry.nacos.util.NacosNamingServiceUtils.getGroup;
 import static 
org.apache.dubbo.registry.nacos.util.NacosNamingServiceUtils.toInstance;
 
 /**
@@ -52,8 +52,6 @@ public class NacosServiceDiscovery extends 
AbstractServiceDiscovery {
 
     private final Logger logger = LoggerFactory.getLogger(getClass());
 
-    private String group;
-
     private NacosNamingServiceWrapper namingService;
 
     private URL registryURL;
@@ -61,7 +59,6 @@ public class NacosServiceDiscovery extends 
AbstractServiceDiscovery {
     @Override
     public void doInitialize(URL registryURL) throws Exception {
         this.namingService = createNamingService(registryURL);
-        this.group = getGroup(registryURL);
         this.registryURL = registryURL;
     }
 
@@ -74,7 +71,10 @@ public class NacosServiceDiscovery extends 
AbstractServiceDiscovery {
     public void doRegister(ServiceInstance serviceInstance) {
         execute(namingService, service -> {
             Instance instance = toInstance(serviceInstance);
-            service.registerInstance(instance.getServiceName(), group, 
instance);
+            // Should not register real group for ServiceInstance
+            // Or will cause consumer unable to fetch all of the providers 
from every group
+            // Provider's group is invisible for consumer
+            service.registerInstance(instance.getServiceName(), 
Constants.DEFAULT_GROUP, instance);
         });
     }
 
@@ -89,14 +89,20 @@ public class NacosServiceDiscovery extends 
AbstractServiceDiscovery {
     public void doUnregister(ServiceInstance serviceInstance) throws 
RuntimeException {
         execute(namingService, service -> {
             Instance instance = toInstance(serviceInstance);
-            service.deregisterInstance(instance.getServiceName(), group, 
instance);
+            // Should not register real group for ServiceInstance
+            // Or will cause consumer unable to fetch all of the providers 
from every group
+            // Provider's group is invisible for consumer
+            service.deregisterInstance(instance.getServiceName(), 
Constants.DEFAULT_GROUP, instance);
         });
     }
 
     @Override
     public Set<String> getServices() {
         return ThrowableFunction.execute(namingService, service -> {
-            ListView<String> view = service.getServicesOfServer(0, 
Integer.MAX_VALUE, group);
+            // Should not register real group for ServiceInstance
+            // Or will cause consumer unable to fetch all of the providers 
from every group
+            // Provider's group is invisible for consumer
+            ListView<String> view = service.getServicesOfServer(0, 
Integer.MAX_VALUE, Constants.DEFAULT_GROUP);
             return new LinkedHashSet<>(view.getData());
         });
     }
@@ -104,7 +110,7 @@ public class NacosServiceDiscovery extends 
AbstractServiceDiscovery {
     @Override
     public List<ServiceInstance> getInstances(String serviceName) throws 
NullPointerException {
         return ThrowableFunction.execute(namingService, service ->
-                service.selectInstances(serviceName, true)
+                service.selectInstances(serviceName, Constants.DEFAULT_GROUP, 
true)
                         
.stream().map(NacosNamingServiceUtils::toServiceInstance)
                         .collect(Collectors.toList())
         );
@@ -116,7 +122,7 @@ public class NacosServiceDiscovery extends 
AbstractServiceDiscovery {
         execute(namingService, service -> {
             listener.getServiceNames().forEach(serviceName -> {
                 try {
-                    service.subscribe(serviceName, e -> { // Register Nacos 
EventListener
+                    service.subscribe(serviceName, Constants.DEFAULT_GROUP, e 
-> { // Register Nacos EventListener
                         if (e instanceof NamingEvent) {
                             NamingEvent event = (NamingEvent) e;
                             handleEvent(event, listener);
diff --git 
a/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/util/NacosNamingServiceUtils.java
 
b/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/util/NacosNamingServiceUtils.java
index e9467cf..9136eee 100644
--- 
a/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/util/NacosNamingServiceUtils.java
+++ 
b/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/util/NacosNamingServiceUtils.java
@@ -36,9 +36,7 @@ import java.util.Properties;
 
 import static 
com.alibaba.nacos.api.PropertyKeyConst.NAMING_LOAD_CACHE_AT_START;
 import static com.alibaba.nacos.api.PropertyKeyConst.SERVER_ADDR;
-import static com.alibaba.nacos.api.common.Constants.DEFAULT_GROUP;
 import static 
com.alibaba.nacos.client.naming.utils.UtilAndComs.NACOS_NAMING_LOG_NAME;
-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;
 import static org.apache.dubbo.common.constants.RemotingConstants.BACKUP_KEY;
 import static 
org.apache.dubbo.common.utils.StringConstantFieldValuePredicate.of;
 
@@ -86,19 +84,6 @@ public class NacosNamingServiceUtils {
     }
 
     /**
-     * The group of {@link NamingService} to register
-     *
-     * @param connectionURL {@link URL connection url}
-     * @return non-null, "default" as default
-     * @since 2.7.5
-     */
-    public static String getGroup(URL connectionURL) {
-        // Compatible with nacos grouping via group.
-        String group = connectionURL.getParameter(GROUP_KEY, DEFAULT_GROUP);
-        return connectionURL.getParameter(NACOS_GROUP_KEY, group);
-    }
-
-    /**
      * Create an instance of {@link NamingService} from specified {@link URL 
connection url}
      *
      * @param connectionURL {@link URL connection url}

Reply via email to