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/08/29 13:24:45 UTC
[dubbo] branch 3.0-multi-instances updated: Pass ApplicationModel
in ServiceInstance
This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch 3.0-multi-instances
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.0-multi-instances by this push:
new 307c170 Pass ApplicationModel in ServiceInstance
307c170 is described below
commit 307c170bb4734a8d648d6f4e53567cedc4eded58
Author: Albumen Kevin <jh...@gmail.com>
AuthorDate: Sun Aug 29 21:23:57 2021 +0800
Pass ApplicationModel in ServiceInstance
---
.../dubbo/config/bootstrap/DubboBootstrap.java | 3 +--
.../registry/client/DefaultServiceInstance.java | 13 +++++----
.../client/DefaultServiceInstanceTest.java | 4 ++-
.../registry/client/ServiceDiscoveryTest.java | 31 +++++++++++++---------
.../metadata/MetadataServiceURLBuilderTest.java | 3 ++-
.../SpringCloudMetadataServiceURLBuilderTest.java | 3 ++-
.../dubbo/registry/dns/DNSServiceDiscovery.java | 3 ++-
.../registry/dns/DNSServiceDiscoveryTest.java | 7 +++--
.../kubernetes/KubernetesServiceDiscovery.java | 3 ++-
.../kubernetes/KubernetesServiceDiscoveryTest.java | 11 +++++---
.../registry/nacos/NacosServiceDiscovery.java | 4 +--
.../nacos/util/NacosNamingServiceUtils.java | 9 +++++--
.../dubbo/registry/xds/XdsServiceDiscovery.java | 3 ++-
.../zookeeper/ZookeeperServiceDiscovery.java | 4 +--
.../zookeeper/util/CuratorFrameworkUtils.java | 9 ++++---
.../zookeeper/ZookeeperServiceDiscoveryTest.java | 9 ++++---
16 files changed, 74 insertions(+), 45 deletions(-)
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
index 300ab96..c8ce1de 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
@@ -1607,8 +1607,7 @@ public class DubboBootstrap {
}
private ServiceInstance createServiceInstance(String serviceName) {
- this.serviceInstance = new DefaultServiceInstance(serviceName);
- serviceInstance.setApplicationModel(applicationModel);
+ this.serviceInstance = new DefaultServiceInstance(serviceName, applicationModel);
setMetadataStorageType(serviceInstance, getMetadataType());
ServiceInstanceMetadataUtils.customizeInstance(this.serviceInstance);
return this.serviceInstance;
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/DefaultServiceInstance.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/DefaultServiceInstance.java
index 7c5f764..3957108 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/DefaultServiceInstance.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/DefaultServiceInstance.java
@@ -17,9 +17,9 @@
package org.apache.dubbo.registry.client;
import org.apache.dubbo.metadata.MetadataInfo;
+import org.apache.dubbo.rpc.model.ApplicationModel;
import com.alibaba.fastjson.JSON;
-import org.apache.dubbo.rpc.model.ApplicationModel;
import java.util.HashMap;
import java.util.List;
@@ -81,22 +81,25 @@ public class DefaultServiceInstance implements ServiceInstance {
this.attributes = other.attributes;
}
- public DefaultServiceInstance(String serviceName, String host, Integer port) {
+ public DefaultServiceInstance(String serviceName, String host, Integer port, ApplicationModel applicationModel) {
if (port == null || port < 1) {
throw new IllegalArgumentException("The port value is illegal, the value is " + port);
}
this.serviceName = serviceName;
this.host = host;
this.port = port;
+ setApplicationModel(applicationModel);
+ }
+
+ public DefaultServiceInstance(String serviceName, ApplicationModel applicationModel) {
+ this.serviceName = serviceName;
+ setApplicationModel(applicationModel);
}
public void setRawAddress(String rawAddress) {
this.rawAddress = rawAddress;
}
- public DefaultServiceInstance(String serviceName) {
- this.serviceName = serviceName;
- }
public void setServiceName(String serviceName) {
this.serviceName = serviceName;
diff --git a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/DefaultServiceInstanceTest.java b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/DefaultServiceInstanceTest.java
index e2909ce..2b65cb9 100644
--- a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/DefaultServiceInstanceTest.java
+++ b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/DefaultServiceInstanceTest.java
@@ -16,6 +16,8 @@
*/
package org.apache.dubbo.registry.client;
+import org.apache.dubbo.rpc.model.ApplicationModel;
+
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -36,7 +38,7 @@ public class DefaultServiceInstanceTest {
public DefaultServiceInstance instance;
public static DefaultServiceInstance createInstance() {
- DefaultServiceInstance instance = new DefaultServiceInstance("A", "127.0.0.1", 8080);
+ DefaultServiceInstance instance = new DefaultServiceInstance("A", "127.0.0.1", 8080, ApplicationModel.defaultModel());
instance.getMetadata().put("dubbo.metadata-service.urls", "[ \"dubbo://192.168.0.102:20881/com.alibaba.cloud.dubbo.service.DubboMetadataService?anyhost=true&application=spring-cloud-alibaba-dubbo-provider&bind.ip=192.168.0.102&bind.port=20881&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&group=spring-cloud-alibaba-dubbo-provider&interface=com.alibaba.cloud.dubbo.service.DubboMetadataService&methods=getAllServiceKeys,getServiceRestMetadata,getExportedURLs,getAllExportedU [...]
instance.getMetadata().put("dubbo.metadata-service.url-params", "{\"dubbo\":{\"application\":\"dubbo-provider-demo\",\"deprecated\":\"false\",\"group\":\"dubbo-provider-demo\",\"version\":\"1.0.0\",\"timestamp\":\"1564845042651\",\"dubbo\":\"2.0.2\",\"provider.host\":\"192.168.0.102\",\"provider.port\":\"20880\"}}");
return instance;
diff --git a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/ServiceDiscoveryTest.java b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/ServiceDiscoveryTest.java
index c002c1a..48a81e7 100644
--- a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/ServiceDiscoveryTest.java
+++ b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/ServiceDiscoveryTest.java
@@ -16,7 +16,10 @@
*/
package org.apache.dubbo.registry.client;
+import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.utils.Page;
+import org.apache.dubbo.rpc.model.ApplicationModel;
+import org.apache.dubbo.rpc.model.ScopeModelUtil;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
@@ -46,7 +49,9 @@ public class ServiceDiscoveryTest {
setServiceDiscovery(new InMemoryServiceDiscovery());
}
// test start()
- serviceDiscovery.initialize(null);
+ URL registryUrl = URL.valueOf("");
+ registryUrl = registryUrl.setScopeModel(ApplicationModel.defaultModel());
+ serviceDiscovery.initialize(registryUrl);
}
@AfterEach
@@ -64,7 +69,7 @@ public class ServiceDiscoveryTest {
public void testRegisterAndUpdateAndUnregister() {
// register
- DefaultServiceInstance serviceInstance = new DefaultServiceInstance("A", "127.0.0.1", 8080);
+ DefaultServiceInstance serviceInstance = new DefaultServiceInstance("A", "127.0.0.1", 8080, ApplicationModel.defaultModel());
serviceDiscovery.register(serviceInstance);
List<ServiceInstance> serviceInstances = serviceDiscovery.getInstances("A");
@@ -94,9 +99,9 @@ public class ServiceDiscoveryTest {
@Test
public void testGetServices() {
- serviceDiscovery.register(new DefaultServiceInstance("A", "127.0.0.1", 8080));
- serviceDiscovery.register(new DefaultServiceInstance("B", "127.0.0.1", 8080));
- serviceDiscovery.register(new DefaultServiceInstance("C", "127.0.0.1", 8080));
+ serviceDiscovery.register(new DefaultServiceInstance("A", "127.0.0.1", 8080, ScopeModelUtil.getApplicationModel(serviceDiscovery.getUrl().getScopeModel())));
+ serviceDiscovery.register(new DefaultServiceInstance("B", "127.0.0.1", 8080, ScopeModelUtil.getApplicationModel(serviceDiscovery.getUrl().getScopeModel())));
+ serviceDiscovery.register(new DefaultServiceInstance("C", "127.0.0.1", 8080, ScopeModelUtil.getApplicationModel(serviceDiscovery.getUrl().getScopeModel())));
assertEquals(new HashSet<>(asList("A", "B", "C")), serviceDiscovery.getServices());
}
@@ -104,17 +109,17 @@ public class ServiceDiscoveryTest {
public void testGetInstances() {
List<ServiceInstance> instances = asList(
- new DefaultServiceInstance("A", "127.0.0.1", 8080),
- new DefaultServiceInstance("A", "127.0.0.1", 8081),
- new DefaultServiceInstance("A", "127.0.0.1", 8082)
+ new DefaultServiceInstance("A", "127.0.0.1", 8080, ScopeModelUtil.getApplicationModel(serviceDiscovery.getUrl().getScopeModel())),
+ new DefaultServiceInstance("A", "127.0.0.1", 8081, ScopeModelUtil.getApplicationModel(serviceDiscovery.getUrl().getScopeModel())),
+ new DefaultServiceInstance("A", "127.0.0.1", 8082, ScopeModelUtil.getApplicationModel(serviceDiscovery.getUrl().getScopeModel()))
);
instances.forEach(serviceDiscovery::register);
// Duplicated
- serviceDiscovery.register(new DefaultServiceInstance("A", "127.0.0.1", 8080));
+ serviceDiscovery.register(new DefaultServiceInstance("A", "127.0.0.1", 8080, ScopeModelUtil.getApplicationModel(serviceDiscovery.getUrl().getScopeModel())));
// Duplicated
- serviceDiscovery.register(new DefaultServiceInstance("A", "127.0.0.1", 8081));
+ serviceDiscovery.register(new DefaultServiceInstance("A", "127.0.0.1", 8081, ScopeModelUtil.getApplicationModel(serviceDiscovery.getUrl().getScopeModel())));
// offset starts 0
int offset = 0;
@@ -187,12 +192,12 @@ public class ServiceDiscoveryTest {
public void testGetInstancesWithHealthy() {
List<ServiceInstance> instances = new LinkedList<>(asList(
- new DefaultServiceInstance("A", "127.0.0.1", 8080),
- new DefaultServiceInstance("A", "127.0.0.1", 8081)
+ new DefaultServiceInstance("A", "127.0.0.1", 8080, ScopeModelUtil.getApplicationModel(serviceDiscovery.getUrl().getScopeModel())),
+ new DefaultServiceInstance("A", "127.0.0.1", 8081, ScopeModelUtil.getApplicationModel(serviceDiscovery.getUrl().getScopeModel()))
));
- DefaultServiceInstance serviceInstance = new DefaultServiceInstance("A", "127.0.0.1", 8082);
+ DefaultServiceInstance serviceInstance = new DefaultServiceInstance("A", "127.0.0.1", 8082, ScopeModelUtil.getApplicationModel(serviceDiscovery.getUrl().getScopeModel()));
serviceInstance.setHealthy(false);
instances.add(serviceInstance);
diff --git a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/MetadataServiceURLBuilderTest.java b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/MetadataServiceURLBuilderTest.java
index cf64927..c8032b8 100644
--- a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/MetadataServiceURLBuilderTest.java
+++ b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/MetadataServiceURLBuilderTest.java
@@ -18,6 +18,7 @@ package org.apache.dubbo.registry.client.metadata;
import org.apache.dubbo.registry.client.DefaultServiceInstance;
import org.apache.dubbo.registry.client.ServiceInstance;
+import org.apache.dubbo.rpc.model.ApplicationModel;
/**
* {@link MetadataServiceURLBuilder} Test
@@ -26,7 +27,7 @@ import org.apache.dubbo.registry.client.ServiceInstance;
*/
public class MetadataServiceURLBuilderTest {
- static ServiceInstance serviceInstance = new DefaultServiceInstance("127.0.0.1", "test", 8080);
+ static ServiceInstance serviceInstance = new DefaultServiceInstance("127.0.0.1", "test", 8080, ApplicationModel.defaultModel());
static {
serviceInstance.getMetadata().put("dubbo.metadata-service.urls", "[ \"dubbo://192.168.0.102:20881/com.alibaba.cloud.dubbo.service.DubboMetadataService?anyhost=true&application=spring-cloud-alibaba-dubbo-provider&bind.ip=192.168.0.102&bind.port=20881&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&group=spring-cloud-alibaba-dubbo-provider&interface=com.alibaba.cloud.dubbo.service.DubboMetadataService&methods=getAllServiceKeys,getServiceRestMetadata,getExportedURLs,getAllEx [...]
diff --git a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/SpringCloudMetadataServiceURLBuilderTest.java b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/SpringCloudMetadataServiceURLBuilderTest.java
index 33fb286..9f0395d 100644
--- a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/SpringCloudMetadataServiceURLBuilderTest.java
+++ b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/SpringCloudMetadataServiceURLBuilderTest.java
@@ -18,6 +18,7 @@ package org.apache.dubbo.registry.client.metadata;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.registry.client.DefaultServiceInstance;
+import org.apache.dubbo.rpc.model.ApplicationModel;
import org.junit.jupiter.api.Test;
@@ -37,7 +38,7 @@ public class SpringCloudMetadataServiceURLBuilderTest {
@Test
public void testBuild() {
- List<URL> urls = builder.build(new DefaultServiceInstance("127.0.0.1", "test", 8080));
+ List<URL> urls = builder.build(new DefaultServiceInstance("127.0.0.1", "test", 8080, ApplicationModel.defaultModel()));
assertEquals(0, urls.size());
urls = builder.build(serviceInstance);
diff --git a/dubbo-registry/dubbo-registry-dns/src/main/java/org/apache/dubbo/registry/dns/DNSServiceDiscovery.java b/dubbo-registry/dubbo-registry-dns/src/main/java/org/apache/dubbo/registry/dns/DNSServiceDiscovery.java
index a4d30d6..8f302fb 100644
--- a/dubbo-registry/dubbo-registry-dns/src/main/java/org/apache/dubbo/registry/dns/DNSServiceDiscovery.java
+++ b/dubbo-registry/dubbo-registry-dns/src/main/java/org/apache/dubbo/registry/dns/DNSServiceDiscovery.java
@@ -27,6 +27,7 @@ import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedLi
import org.apache.dubbo.registry.dns.util.DNSClientConst;
import org.apache.dubbo.registry.dns.util.DNSResolver;
import org.apache.dubbo.registry.dns.util.ResolveResult;
+import org.apache.dubbo.rpc.model.ScopeModelUtil;
import java.util.Collections;
import java.util.Comparator;
@@ -142,7 +143,7 @@ public class DNSServiceDiscovery extends SelfHostMetaServiceDiscovery {
List<ServiceInstance> instanceList = new LinkedList<>();
for (String host : resolveResult.getHostnameList()) {
- DefaultServiceInstance serviceInstance = new DefaultServiceInstance(serviceName, host, port);
+ DefaultServiceInstance serviceInstance = new DefaultServiceInstance(serviceName, host, port, ScopeModelUtil.getApplicationModel(getUrl().getScopeModel()));
fillServiceInstance(serviceInstance);
instanceList.add(serviceInstance);
}
diff --git a/dubbo-registry/dubbo-registry-dns/src/test/java/org/apache/dubbo/registry/dns/DNSServiceDiscoveryTest.java b/dubbo-registry/dubbo-registry-dns/src/test/java/org/apache/dubbo/registry/dns/DNSServiceDiscoveryTest.java
index c6c55b6..c80cdaa 100644
--- a/dubbo-registry/dubbo-registry-dns/src/test/java/org/apache/dubbo/registry/dns/DNSServiceDiscoveryTest.java
+++ b/dubbo-registry/dubbo-registry-dns/src/test/java/org/apache/dubbo/registry/dns/DNSServiceDiscoveryTest.java
@@ -37,6 +37,7 @@ import org.apache.dubbo.registry.dns.util.DNSClientConst;
import org.apache.dubbo.registry.dns.util.DNSResolver;
import org.apache.dubbo.registry.dns.util.ResolveResult;
import org.apache.dubbo.rpc.model.ApplicationModel;
+import org.apache.dubbo.rpc.model.ScopeModelUtil;
import com.alibaba.fastjson.JSONObject;
import org.junit.jupiter.api.AfterEach;
@@ -76,11 +77,12 @@ public class DNSServiceDiscoveryTest {
dnsServiceDiscovery.setApplicationModel(applicationModel);
URL registryURL = URL.valueOf("dns://");
+ registryURL.setScopeModel(ApplicationModel.defaultModel());
dnsServiceDiscovery.initialize(registryURL);
assertEquals(registryURL, dnsServiceDiscovery.getUrl());
- ServiceInstance serviceInstance = new DefaultServiceInstance("TestService", "localhost", 12345);
+ ServiceInstance serviceInstance = new DefaultServiceInstance("TestService", "localhost", 12345, ScopeModelUtil.getApplicationModel(dnsServiceDiscovery.getUrl().getScopeModel()));
serviceInstance.getMetadata().put("a", "b");
dnsServiceDiscovery.register(serviceInstance);
@@ -114,12 +116,13 @@ public class DNSServiceDiscoveryTest {
URL registryURL = URL.valueOf("dns://")
.addParameter(DNSClientConst.DNS_POLLING_CYCLE, 100)
.addParameter(Constants.ECHO_POLLING_CYCLE_KEY, 100);
+ registryURL.setScopeModel(ApplicationModel.defaultModel());
applicationModel.getApplicationEnvironment().getAppExternalConfigMap()
.put(METADATA_PROXY_TIMEOUT_KEY, String.valueOf(500));
dnsServiceDiscovery.initialize(registryURL);
WritableMetadataService metadataService = WritableMetadataService.getDefaultExtension(applicationModel);
- ServiceInstance serviceInstance = new DefaultServiceInstance("TestService", "localhost", 12345);
+ ServiceInstance serviceInstance = new DefaultServiceInstance("TestService", "localhost", 12345, ScopeModelUtil.getApplicationModel(dnsServiceDiscovery.getUrl().getScopeModel()));
serviceInstance.getMetadata().put("a", "b");
dnsServiceDiscovery.register(serviceInstance);
diff --git a/dubbo-registry/dubbo-registry-kubernetes/src/main/java/org/apache/dubbo/registry/kubernetes/KubernetesServiceDiscovery.java b/dubbo-registry/dubbo-registry-kubernetes/src/main/java/org/apache/dubbo/registry/kubernetes/KubernetesServiceDiscovery.java
index 0f61a57..f9d58f6 100644
--- a/dubbo-registry/dubbo-registry-kubernetes/src/main/java/org/apache/dubbo/registry/kubernetes/KubernetesServiceDiscovery.java
+++ b/dubbo-registry/dubbo-registry-kubernetes/src/main/java/org/apache/dubbo/registry/kubernetes/KubernetesServiceDiscovery.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.kubernetes.util.KubernetesClientConst;
import org.apache.dubbo.registry.kubernetes.util.KubernetesConfigUtils;
+import org.apache.dubbo.rpc.model.ScopeModelUtil;
import com.alibaba.fastjson.JSONObject;
import io.fabric8.kubernetes.api.model.EndpointAddress;
@@ -362,7 +363,7 @@ public class KubernetesServiceDiscovery extends AbstractServiceDiscovery {
}
instancePorts.forEach(port -> {
- ServiceInstance serviceInstance = new DefaultServiceInstance(serviceName, ip, port);
+ ServiceInstance serviceInstance = new DefaultServiceInstance(serviceName, ip, port, ScopeModelUtil.getApplicationModel(getUrl().getScopeModel()));
String properties = pod.getMetadata().getAnnotations().get(KUBERNETES_PROPERTIES_KEY);
if (StringUtils.isNotEmpty(properties)) {
diff --git a/dubbo-registry/dubbo-registry-kubernetes/src/test/java/org/apache/dubbo/registry/kubernetes/KubernetesServiceDiscoveryTest.java b/dubbo-registry/dubbo-registry-kubernetes/src/test/java/org/apache/dubbo/registry/kubernetes/KubernetesServiceDiscoveryTest.java
index 4dc43e8..0fc62fd 100644
--- a/dubbo-registry/dubbo-registry-kubernetes/src/test/java/org/apache/dubbo/registry/kubernetes/KubernetesServiceDiscoveryTest.java
+++ b/dubbo-registry/dubbo-registry-kubernetes/src/test/java/org/apache/dubbo/registry/kubernetes/KubernetesServiceDiscoveryTest.java
@@ -22,6 +22,8 @@ import org.apache.dubbo.registry.client.ServiceInstance;
import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;
import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;
import org.apache.dubbo.registry.kubernetes.util.KubernetesClientConst;
+import org.apache.dubbo.rpc.model.ApplicationModel;
+import org.apache.dubbo.rpc.model.ScopeModelUtil;
import io.fabric8.kubernetes.api.model.Endpoints;
import io.fabric8.kubernetes.api.model.EndpointsBuilder;
@@ -66,6 +68,7 @@ public class KubernetesServiceDiscoveryTest {
.setProtocol("kubernetes")
.addParameter(KubernetesClientConst.USE_HTTPS, "false")
.addParameter(KubernetesClientConst.HTTP2_DISABLE, "true");
+ serverUrl.setScopeModel(ApplicationModel.defaultModel());
System.setProperty(Config.KUBERNETES_AUTH_TRYKUBECONFIG_SYSTEM_PROPERTY, "false");
System.setProperty(Config.KUBERNETES_AUTH_TRYSERVICEACCOUNT_SYSTEM_PROPERTY, "false");
@@ -107,7 +110,7 @@ public class KubernetesServiceDiscoveryTest {
serviceDiscovery.setCurrentHostname("TestServer");
serviceDiscovery.setKubernetesClient(mockClient);
- ServiceInstance serviceInstance = new DefaultServiceInstance("TestService", "Test", 12345);
+ ServiceInstance serviceInstance = new DefaultServiceInstance("TestService", "Test", 12345, ScopeModelUtil.getApplicationModel(serviceDiscovery.getUrl().getScopeModel()));
serviceDiscovery.register(serviceInstance);
HashSet<String> serviceList = new HashSet<>(4);
@@ -146,7 +149,7 @@ public class KubernetesServiceDiscoveryTest {
serviceDiscovery.setCurrentHostname("TestServer");
serviceDiscovery.setKubernetesClient(mockClient);
- ServiceInstance serviceInstance = new DefaultServiceInstance("TestService", "Test", 12345);
+ ServiceInstance serviceInstance = new DefaultServiceInstance("TestService", "Test", 12345, ScopeModelUtil.getApplicationModel(serviceDiscovery.getUrl().getScopeModel()));
serviceDiscovery.register(serviceInstance);
HashSet<String> serviceList = new HashSet<>(4);
@@ -156,7 +159,7 @@ public class KubernetesServiceDiscoveryTest {
serviceDiscovery.addServiceInstancesChangedListener(mockListener);
- serviceInstance = new DefaultServiceInstance("TestService", "Test12345", 12345);
+ serviceInstance = new DefaultServiceInstance("TestService", "Test12345", 12345, ScopeModelUtil.getApplicationModel(serviceDiscovery.getUrl().getScopeModel()));
serviceDiscovery.update(serviceInstance);
Thread.sleep(5000);
@@ -178,7 +181,7 @@ public class KubernetesServiceDiscoveryTest {
serviceDiscovery.setCurrentHostname("TestServer");
serviceDiscovery.setKubernetesClient(mockClient);
- ServiceInstance serviceInstance = new DefaultServiceInstance("TestService", "Test", 12345);
+ ServiceInstance serviceInstance = new DefaultServiceInstance("TestService", "Test", 12345, ScopeModelUtil.getApplicationModel(serviceDiscovery.getUrl().getScopeModel()));
serviceDiscovery.register(serviceInstance);
serviceDiscovery.update(serviceInstance);
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..be0c253 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
@@ -105,7 +105,7 @@ public class NacosServiceDiscovery extends AbstractServiceDiscovery {
public List<ServiceInstance> getInstances(String serviceName) throws NullPointerException {
return ThrowableFunction.execute(namingService, service ->
service.selectInstances(serviceName, true)
- .stream().map(NacosNamingServiceUtils::toServiceInstance)
+ .stream().map((i)->NacosNamingServiceUtils.toServiceInstance(registryURL, i))
.collect(Collectors.toList())
);
}
@@ -138,7 +138,7 @@ public class NacosServiceDiscovery extends AbstractServiceDiscovery {
String serviceName = event.getServiceName();
List<ServiceInstance> serviceInstances = event.getInstances()
.stream()
- .map(NacosNamingServiceUtils::toServiceInstance)
+ .map((i)->NacosNamingServiceUtils.toServiceInstance(registryURL, i))
.collect(Collectors.toList());
listener.onEvent(new ServiceInstancesChangedEvent(serviceName, serviceInstances));
}
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..f76d03a 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
@@ -23,6 +23,7 @@ import org.apache.dubbo.common.utils.StringUtils;
import org.apache.dubbo.registry.client.DefaultServiceInstance;
import org.apache.dubbo.registry.client.ServiceInstance;
import org.apache.dubbo.registry.nacos.NacosNamingServiceWrapper;
+import org.apache.dubbo.rpc.model.ScopeModelUtil;
import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.PropertyKeyConst;
@@ -77,8 +78,12 @@ public class NacosNamingServiceUtils {
* @return non-null
* @since 2.7.5
*/
- public static ServiceInstance toServiceInstance(Instance instance) {
- DefaultServiceInstance serviceInstance = new DefaultServiceInstance(NamingUtils.getServiceName(instance.getServiceName()), instance.getIp(), instance.getPort());
+ public static ServiceInstance toServiceInstance(URL registryUrl, Instance instance) {
+ DefaultServiceInstance serviceInstance =
+ new DefaultServiceInstance(
+ NamingUtils.getServiceName(instance.getServiceName()),
+ instance.getIp(), instance.getPort(),
+ ScopeModelUtil.getApplicationModel(registryUrl.getScopeModel()));
serviceInstance.setMetadata(instance.getMetadata());
serviceInstance.setEnabled(instance.isEnabled());
serviceInstance.setHealthy(instance.isHealthy());
diff --git a/dubbo-registry/dubbo-registry-xds/src/main/java/org/apache/dubbo/registry/xds/XdsServiceDiscovery.java b/dubbo-registry/dubbo-registry-xds/src/main/java/org/apache/dubbo/registry/xds/XdsServiceDiscovery.java
index a2bded3..7765f7c 100644
--- a/dubbo-registry/dubbo-registry-xds/src/main/java/org/apache/dubbo/registry/xds/XdsServiceDiscovery.java
+++ b/dubbo-registry/dubbo-registry-xds/src/main/java/org/apache/dubbo/registry/xds/XdsServiceDiscovery.java
@@ -25,6 +25,7 @@ import org.apache.dubbo.registry.client.ServiceInstance;
import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;
import org.apache.dubbo.registry.xds.util.PilotExchanger;
import org.apache.dubbo.registry.xds.util.protocol.message.Endpoint;
+import org.apache.dubbo.rpc.model.ScopeModelUtil;
import java.util.Collection;
import java.util.Comparator;
@@ -74,7 +75,7 @@ public class XdsServiceDiscovery extends SelfHostMetaServiceDiscovery {
List<ServiceInstance> instances = new LinkedList<>();
endpoints.forEach(endpoint -> {
try {
- DefaultServiceInstance serviceInstance = new DefaultServiceInstance(serviceName, endpoint.getAddress(), endpoint.getPortValue());
+ DefaultServiceInstance serviceInstance = new DefaultServiceInstance(serviceName, endpoint.getAddress(), endpoint.getPortValue(), ScopeModelUtil.getApplicationModel(getUrl().getScopeModel()));
// fill metadata by SelfHostMetaServiceDiscovery, will be fetched by RPC request
fillServiceInstance(serviceInstance);
instances.add(serviceInstance);
diff --git a/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscovery.java b/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscovery.java
index dc696db..e37dbd9 100644
--- a/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscovery.java
+++ b/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscovery.java
@@ -118,7 +118,7 @@ public class ZookeeperServiceDiscovery extends AbstractServiceDiscovery {
@Override
public List<ServiceInstance> getInstances(String serviceName) throws NullPointerException {
- return doInServiceDiscovery(s -> build(s.queryForInstances(serviceName)));
+ return doInServiceDiscovery(s -> build(registryURL, s.queryForInstances(serviceName)));
}
@Override
@@ -147,7 +147,7 @@ public class ZookeeperServiceDiscovery extends AbstractServiceDiscovery {
for (int i = 0; i < pageSize; i++) {
if (iterator.hasNext()) {
String serviceId = iterator.next();
- ServiceInstance serviceInstance = build(serviceDiscovery.queryForInstance(serviceName, serviceId));
+ ServiceInstance serviceInstance = build(registryURL, serviceDiscovery.queryForInstance(serviceName, serviceId));
serviceInstances.add(serviceInstance);
}
}
diff --git a/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java b/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java
index cb532bd..993e02a 100644
--- a/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java
+++ b/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java
@@ -20,6 +20,7 @@ import org.apache.dubbo.common.URL;
import org.apache.dubbo.registry.client.DefaultServiceInstance;
import org.apache.dubbo.registry.client.ServiceInstance;
import org.apache.dubbo.registry.zookeeper.ZookeeperInstance;
+import org.apache.dubbo.rpc.model.ScopeModelUtil;
import org.apache.curator.RetryPolicy;
import org.apache.curator.framework.CuratorFramework;
@@ -75,17 +76,17 @@ public abstract class CuratorFrameworkUtils {
}
- public static List<ServiceInstance> build(Collection<org.apache.curator.x.discovery.ServiceInstance<ZookeeperInstance>>
+ public static List<ServiceInstance> build(URL registryUrl, Collection<org.apache.curator.x.discovery.ServiceInstance<ZookeeperInstance>>
instances) {
- return instances.stream().map(CuratorFrameworkUtils::build).collect(Collectors.toList());
+ return instances.stream().map((i)->build(registryUrl, i)).collect(Collectors.toList());
}
- public static ServiceInstance build(org.apache.curator.x.discovery.ServiceInstance<ZookeeperInstance> instance) {
+ public static ServiceInstance build(URL registryUrl, org.apache.curator.x.discovery.ServiceInstance<ZookeeperInstance> instance) {
String name = instance.getName();
String host = instance.getAddress();
int port = instance.getPort();
ZookeeperInstance zookeeperInstance = instance.getPayload();
- DefaultServiceInstance serviceInstance = new DefaultServiceInstance(name, host, port);
+ DefaultServiceInstance serviceInstance = new DefaultServiceInstance(name, host, port, ScopeModelUtil.getApplicationModel(registryUrl.getScopeModel()));
serviceInstance.setMetadata(zookeeperInstance.getMetadata());
return serviceInstance;
}
diff --git a/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryTest.java b/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryTest.java
index ae067cc..378beee 100644
--- a/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryTest.java
+++ b/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryTest.java
@@ -21,10 +21,12 @@ import org.apache.dubbo.common.utils.NetUtils;
import org.apache.dubbo.common.utils.Page;
import org.apache.dubbo.registry.client.DefaultServiceInstance;
import org.apache.dubbo.registry.client.ServiceInstance;
-
-import org.apache.curator.test.TestingServer;
import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;
import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;
+import org.apache.dubbo.rpc.model.ApplicationModel;
+import org.apache.dubbo.rpc.model.ScopeModelUtil;
+
+import org.apache.curator.test.TestingServer;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -67,6 +69,7 @@ public class ZookeeperServiceDiscoveryTest {
zkServer.start();
this.registryUrl = URL.valueOf("zookeeper://127.0.0.1:" + zkServerPort);
+ registryUrl.setScopeModel(ApplicationModel.defaultModel());
this.discovery = new ZookeeperServiceDiscovery();
this.discovery.initialize(registryUrl);
}
@@ -108,7 +111,7 @@ public class ZookeeperServiceDiscoveryTest {
}
private DefaultServiceInstance createServiceInstance(String serviceName, String host, int port) {
- return new DefaultServiceInstance(serviceName, host, port);
+ return new DefaultServiceInstance(serviceName, host, port, ScopeModelUtil.getApplicationModel(registryUrl.getScopeModel()));
}
@Test