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