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

liujun pushed a commit to branch 2.6.x
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/2.6.x by this push:
     new c8facc5  修复注册中心域名解析导致的单点问题 (#4293)
c8facc5 is described below

commit c8facc5ef6e9ab64e0331f5d0e25a6fb96f6bed0
Author: zetas <[email protected]>
AuthorDate: Tue Jul 23 20:06:15 2019 +0800

    修复注册中心域名解析导致的单点问题 (#4293)
    
    Fix #2545
---
 .../dubbo/registry/support/AbstractRegistryFactory.java     |  2 +-
 .../dubbo/registry/support/AbstractRegistryFactoryTest.java | 13 +++++++++----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactory.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactory.java
index 5bf35f7..d17c99b 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactory.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactory.java
@@ -85,7 +85,7 @@ public abstract class AbstractRegistryFactory implements 
RegistryFactory {
         url = url.setPath(RegistryService.class.getName())
                 .addParameter(Constants.INTERFACE_KEY, 
RegistryService.class.getName())
                 .removeParameters(Constants.EXPORT_KEY, Constants.REFER_KEY);
-        String key = url.toServiceString();
+        String key = url.toServiceStringWithoutResolving();
         // Lock the registry access process to ensure a single instance of the 
registry
         LOCK.lock();
         try {
diff --git 
a/dubbo-registry/dubbo-registry-api/src/test/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactoryTest.java
 
b/dubbo-registry/dubbo-registry-api/src/test/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactoryTest.java
index cb2a454..15ef91e 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/test/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactoryTest.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/test/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactoryTest.java
@@ -21,7 +21,6 @@ import com.alibaba.dubbo.common.utils.NetUtils;
 import com.alibaba.dubbo.registry.NotifyListener;
 import com.alibaba.dubbo.registry.Registry;
 import com.alibaba.dubbo.registry.RegistryFactory;
-
 import junit.framework.Assert;
 import org.junit.Test;
 
@@ -87,9 +86,15 @@ public class AbstractRegistryFactoryTest {
 
     @Test
     public void testRegistryFactoryIpCache() throws Exception {
-        Registry registry1 = 
registryFactory.getRegistry(URL.valueOf("dubbo://" + 
NetUtils.getLocalAddress().getHostName() + ":2233"));
-        Registry registry2 = 
registryFactory.getRegistry(URL.valueOf("dubbo://" + 
NetUtils.getLocalAddress().getHostAddress() + ":2233"));
-        Assert.assertEquals(registry1, registry2);
+        String hostName = NetUtils.getLocalAddress().getHostName();
+        String ip = NetUtils.getLocalAddress().getHostAddress();
+        Registry registry1 = 
registryFactory.getRegistry(URL.valueOf("dubbo://" + hostName + ":2233"));
+        Registry registry2 = 
registryFactory.getRegistry(URL.valueOf("dubbo://" + ip + ":2233"));
+        if (hostName.equals(ip)) {
+            Assert.assertEquals(registry1, registry2);
+        } else {
+            Assert.assertNotSame(registry1, registry2);
+        }
     }
 
     @Test

Reply via email to