You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2020/07/27 07:36:45 UTC
[dubbo] 01/03: unify registry-cluster key
This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git
commit 0cd52b940c28e7fa94376f4a1e8f83e5da5b8627
Author: ken.lj <ke...@gmail.com>
AuthorDate: Mon Jul 27 15:20:51 2020 +0800
unify registry-cluster key
---
.../dubbo/common/constants/RegistryConstants.java | 4 +++-
.../org/apache/dubbo/metadata/MetadataInfo.java | 28 +++++++++++++++++-----
.../apache/dubbo/metadata/MetadataInfoTest.java | 2 +-
.../client/DefaultRegistryClusterIdentifier.java | 6 ++---
.../registry/client/DefaultServiceInstance.java | 1 +
.../dubbo/registry/client/InstanceAddressURL.java | 12 +++++++++-
.../registry/client/RegistryClusterIdentifier.java | 7 +++---
.../registry/client/ServiceDiscoveryRegistry.java | 25 +++++++++----------
.../listener/ServiceInstancesChangedListener.java | 5 ++--
...MetadataServiceURLParamsMetadataCustomizer.java | 2 +-
.../metadata/ServiceInstanceMetadataUtils.java | 4 ++--
.../store/InMemoryWritableMetadataService.java | 20 ++++++++--------
.../metadata/store/RemoteMetadataServiceImpl.java | 15 ++++++------
13 files changed, 81 insertions(+), 50 deletions(-)
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/constants/RegistryConstants.java b/dubbo-common/src/main/java/org/apache/dubbo/common/constants/RegistryConstants.java
index 420a909..d25e9fc 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/constants/RegistryConstants.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/constants/RegistryConstants.java
@@ -21,7 +21,9 @@ public interface RegistryConstants {
String REGISTRY_KEY = "registry";
- String REGISTRY_CLUSTER = "REGISTRY_CLUSTER";
+ String REGISTRY_CLUSTER_KEY = "REGISTRY_CLUSTER";
+
+ String REGISTRY_CLUSTER_TYPE_KEY = "registry-cluster-type";
String REGISTRY_PROTOCOL = "registry";
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/MetadataInfo.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/MetadataInfo.java
index 315e56e..47e8705 100644
--- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/MetadataInfo.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/MetadataInfo.java
@@ -47,6 +47,7 @@ public class MetadataInfo implements Serializable {
private String revision;
private Map<String, ServiceInfo> services;
+ // used at runtime
private transient Map<String, String> extendParams;
private transient AtomicBoolean reported = new AtomicBoolean(false);
@@ -85,7 +86,7 @@ public class MetadataInfo implements Serializable {
markChanged();
}
- public String getRevision() {
+ public String calAndGetRevision() {
if (revision != null && hasReported()) {
return revision;
}
@@ -161,8 +162,11 @@ public class MetadataInfo implements Serializable {
@Override
public String toString() {
- // FIXME
- return super.toString();
+ return "metadata{" +
+ "app='" + app + "'," +
+ "revision='" + revision + "'," +
+ "services=" + services +
+ "}";
}
public static class ServiceInfo implements Serializable {
@@ -174,12 +178,17 @@ public class MetadataInfo implements Serializable {
private String path; // most of the time, path is the same with the interface name.
private Map<String, String> params;
+ // params configuried on consumer side,
private transient Map<String, String> consumerParams;
+ // cached method params
private transient Map<String, Map<String, String>> methodParams;
private transient Map<String, Map<String, String>> consumerMethodParams;
- private volatile transient Map<String, Number> numbers;
- private volatile transient Map<String, Map<String, Number>> methodNumbers;
+ // cached numbers
+ private transient Map<String, Number> numbers;
+ private transient Map<String, Map<String, Number>> methodNumbers;
+ // service + group + version
private transient String serviceKey;
+ // service + group + version + protocol
private transient String matchKey;
public ServiceInfo() {
@@ -420,7 +429,14 @@ public class MetadataInfo implements Serializable {
@Override
public String toString() {
- return super.toString();
+ return "service{" +
+ "name='" + name + "'," +
+ "group='" + group + "'," +
+ "version='" + version + "'," +
+ "protocol='" + protocol + "'," +
+ "params=" + params + "," +
+ "consumerParams=" + consumerParams +
+ "}";
}
}
}
diff --git a/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/MetadataInfoTest.java b/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/MetadataInfoTest.java
index be8c3fe..fdb7021 100644
--- a/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/MetadataInfoTest.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/MetadataInfoTest.java
@@ -31,6 +31,6 @@ public class MetadataInfoTest {
metadataInfo.addService(serviceInfo);
System.out.println(serviceInfo.toDescString());
- System.out.println(metadataInfo.getRevision());
+ System.out.println(metadataInfo.calAndGetRevision());
}
}
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/DefaultRegistryClusterIdentifier.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/DefaultRegistryClusterIdentifier.java
index 6c88265..42cc10b 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/DefaultRegistryClusterIdentifier.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/DefaultRegistryClusterIdentifier.java
@@ -18,16 +18,16 @@ package org.apache.dubbo.registry.client;
import org.apache.dubbo.common.URL;
-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER;
+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER_KEY;
public class DefaultRegistryClusterIdentifier implements RegistryClusterIdentifier {
@Override
public String providerKey(URL url) {
- return url.getParameter(REGISTRY_CLUSTER);
+ return url.getParameter(REGISTRY_CLUSTER_KEY);
}
@Override
public String consumerKey(URL url) {
- return url.getParameter(REGISTRY_CLUSTER);
+ return url.getParameter(REGISTRY_CLUSTER_KEY);
}
}
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 3c7204d..eb581f9 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
@@ -49,6 +49,7 @@ public class DefaultServiceInstance implements ServiceInstance {
private transient String address;
private transient MetadataInfo serviceMetadata;
+ // used at runtime
private transient Map<String, String> extendParams = new HashMap<>();
public DefaultServiceInstance() {
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/InstanceAddressURL.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/InstanceAddressURL.java
index ca8f9be..f4ec3fe 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/InstanceAddressURL.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/InstanceAddressURL.java
@@ -32,6 +32,8 @@ import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;
public class InstanceAddressURL extends URL {
private ServiceInstance instance;
private MetadataInfo metadataInfo;
+
+ // cached numbers
private volatile transient Map<String, Number> numbers;
private volatile transient Map<String, Map<String, Number>> methodNumbers;
@@ -353,8 +355,16 @@ public class InstanceAddressURL extends URL {
return getInstance().hashCode();
}
+ public String getServiceString(String service) {
+ MetadataInfo.ServiceInfo serviceInfo = metadataInfo.getServiceInfo(service);
+ if (serviceInfo == null) {
+ return instance.toString();
+ }
+ return instance.toString() + serviceInfo.toString();
+ }
+
@Override
public String toString() {
- return super.toString();
+ return instance.toString() + metadataInfo.toString();
}
}
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/RegistryClusterIdentifier.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/RegistryClusterIdentifier.java
index 76d141a..9d0e4a0 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/RegistryClusterIdentifier.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/RegistryClusterIdentifier.java
@@ -20,16 +20,17 @@ import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.extension.ExtensionLoader;
import org.apache.dubbo.common.extension.SPI;
+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER_TYPE_KEY;
+
@SPI
public interface RegistryClusterIdentifier {
String providerKey(URL url);
String consumerKey(URL url);
- static RegistryClusterIdentifier getExtension() {
+ static RegistryClusterIdentifier getExtension(URL url) {
ExtensionLoader<RegistryClusterIdentifier> loader
= ExtensionLoader.getExtensionLoader(RegistryClusterIdentifier.class);
-// return loader.getExtension(ConfigurationUtils.getProperty("dubbo.application.sd.type", "default"));
- return loader.getExtension("default");
+ return loader.getExtension(url.getParameter(REGISTRY_CLUSTER_TYPE_KEY, "default"));
}
}
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java
index f3d41c5..efd3c57 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java
@@ -62,8 +62,7 @@ import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;
import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;
import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;
import static org.apache.dubbo.common.constants.RegistryConstants.PROVIDED_BY;
-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER;
-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_KEY;
+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER_KEY;
import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_TYPE_KEY;
import static org.apache.dubbo.common.constants.RegistryConstants.SERVICE_REGISTRY_TYPE;
import static org.apache.dubbo.common.constants.RegistryConstants.SUBSCRIBED_SERVICE_NAMES_KEY;
@@ -206,8 +205,8 @@ public class ServiceDiscoveryRegistry implements Registry {
public void doRegister(URL url) {
String registryCluster = serviceDiscovery.getUrl().getParameter(ID_KEY);
- if (registryCluster != null) {
- url = url.addParameter(REGISTRY_CLUSTER, registryCluster);
+ if (registryCluster != null && url.getParameter(REGISTRY_CLUSTER_KEY) == null) {
+ url = url.addParameter(REGISTRY_CLUSTER_KEY, registryCluster);
}
if (writableMetadataService.exportURL(url)) {
if (logger.isInfoEnabled()) {
@@ -230,8 +229,8 @@ public class ServiceDiscoveryRegistry implements Registry {
public void doUnregister(URL url) {
String registryCluster = serviceDiscovery.getUrl().getParameter(ID_KEY);
- if (registryCluster != null) {
- url = url.addParameter(REGISTRY_CLUSTER, registryCluster);
+ if (registryCluster != null && url.getParameter(REGISTRY_CLUSTER_KEY) == null) {
+ url = url.addParameter(REGISTRY_CLUSTER_KEY, registryCluster);
}
if (writableMetadataService.unexportURL(url)) {
if (logger.isInfoEnabled()) {
@@ -250,8 +249,8 @@ public class ServiceDiscoveryRegistry implements Registry {
return;
}
String registryCluster = serviceDiscovery.getUrl().getParameter(ID_KEY);
- if (registryCluster != null) {
- url = url.addParameter(REGISTRY_KEY, registryCluster);
+ if (registryCluster != null && url.getParameter(REGISTRY_CLUSTER_KEY) == null) {
+ url = url.addParameter(REGISTRY_CLUSTER_KEY, registryCluster);
}
doSubscribe(url, listener);
}
@@ -273,8 +272,8 @@ public class ServiceDiscoveryRegistry implements Registry {
return;
}
String registryCluster = serviceDiscovery.getUrl().getParameter(ID_KEY);
- if (registryCluster != null) {
- url = url.addParameter(REGISTRY_KEY, registryCluster);
+ if (registryCluster != null && url.getParameter(REGISTRY_CLUSTER_KEY) == null) {
+ url = url.addParameter(REGISTRY_CLUSTER_KEY, registryCluster);
}
doUnsubscribe(url, listener);
}
@@ -319,9 +318,11 @@ public class ServiceDiscoveryRegistry implements Registry {
List<ServiceInstance> serviceInstances = serviceDiscovery.getInstances(serviceName);
serviceListener.onEvent(new ServiceInstancesChangedEvent(serviceName, serviceInstances));
});
- listener.notify(serviceListener.getUrls(url.getServiceKey() + GROUP_CHAR_SEPARATOR + url.getParameter(PROTOCOL_KEY, DUBBO)));
+ String protocolServiceKey = url.getServiceKey() + GROUP_CHAR_SEPARATOR + url.getParameter(PROTOCOL_KEY, DUBBO);
- serviceListener.addListener(url.getProtocolServiceKey(), listener);
+ listener.notify(serviceListener.getUrls(protocolServiceKey));
+
+ serviceListener.addListener(protocolServiceKey, listener);
registerServiceInstancesChangedListener(url, serviceListener);
}
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/event/listener/ServiceInstancesChangedListener.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/event/listener/ServiceInstancesChangedListener.java
index 37b6bf0..6ff7c2a 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/event/listener/ServiceInstancesChangedListener.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/event/listener/ServiceInstancesChangedListener.java
@@ -45,8 +45,8 @@ import java.util.Objects;
import java.util.Set;
import java.util.TreeSet;
-import static org.apache.dubbo.common.constants.CommonConstants.REGISTER_KEY;
import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE;
+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER_KEY;
import static org.apache.dubbo.metadata.MetadataInfo.DEFAULT_REVISION;
import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.getExportedServicesRevision;
@@ -156,7 +156,8 @@ public class ServiceInstancesChangedListener implements ConditionalEventListener
private MetadataInfo getMetadataInfo(ServiceInstance instance) {
String metadataType = ServiceInstanceMetadataUtils.getMetadataStorageType(instance);
- instance.getExtendParams().putIfAbsent(REGISTER_KEY, RegistryClusterIdentifier.getExtension().consumerKey(url));
+ // FIXME, check "REGISTRY_CLUSTER_KEY" must be set by every registry implementation.
+ instance.getExtendParams().putIfAbsent(REGISTRY_CLUSTER_KEY, RegistryClusterIdentifier.getExtension(url).consumerKey(url));
MetadataInfo metadataInfo;
try {
if (REMOTE_METADATA_STORAGE_TYPE.equals(metadataType)) {
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceURLParamsMetadataCustomizer.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceURLParamsMetadataCustomizer.java
index 8b525c7..9cc28a7 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceURLParamsMetadataCustomizer.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceURLParamsMetadataCustomizer.java
@@ -41,7 +41,7 @@ public class MetadataServiceURLParamsMetadataCustomizer implements ServiceInstan
String propertyValue = resolveMetadataPropertyValue(serviceInstance);
if (!isBlank(propertyName) && !isBlank(propertyValue)) {
- metadata.put(propertyName, metadata.get(propertyName));
+ metadata.put(propertyName, propertyValue);
}
}
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataUtils.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataUtils.java
index 5713256..0f0cf3c 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataUtils.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataUtils.java
@@ -244,8 +244,8 @@ public class ServiceInstanceMetadataUtils {
MetadataInfo metadataInfo = WritableMetadataService.getDefaultExtension().getMetadataInfos().get(registryCluster);
if (metadataInfo != null) {
String existingInstanceRevision = instance.getMetadata().get(EXPORTED_SERVICES_REVISION_PROPERTY_NAME);
- if (!metadataInfo.getRevision().equals(existingInstanceRevision)) {
- instance.getMetadata().put(EXPORTED_SERVICES_REVISION_PROPERTY_NAME, metadataInfo.getRevision());
+ if (!metadataInfo.calAndGetRevision().equals(existingInstanceRevision)) {
+ instance.getMetadata().put(EXPORTED_SERVICES_REVISION_PROPERTY_NAME, metadataInfo.calAndGetRevision());
if (existingInstanceRevision != null) {// skip the first registration.
instance.getExtendParams().put(INSTANCE_REVISION_UPDATED_KEY, "true");
}
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/store/InMemoryWritableMetadataService.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/store/InMemoryWritableMetadataService.java
index 2b747de..f0281da 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/store/InMemoryWritableMetadataService.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/store/InMemoryWritableMetadataService.java
@@ -125,10 +125,10 @@ public class InMemoryWritableMetadataService implements WritableMetadataService
@Override
public boolean exportURL(URL url) {
- String registryKey = RegistryClusterIdentifier.getExtension().providerKey(url);
- String[] keys = registryKey.split(",");
- for (String key : keys) {
- MetadataInfo metadataInfo = metadataInfos.computeIfAbsent(key, k -> {
+ String registryCluster = RegistryClusterIdentifier.getExtension().providerKey(url);
+ String[] clusters = registryCluster.split(",");
+ for (String cluster : clusters) {
+ MetadataInfo metadataInfo = metadataInfos.computeIfAbsent(cluster, k -> {
return new MetadataInfo(ApplicationModel.getName());
});
metadataInfo.addService(new ServiceInfo(url));
@@ -139,13 +139,13 @@ public class InMemoryWritableMetadataService implements WritableMetadataService
@Override
public boolean unexportURL(URL url) {
- String registryKey = RegistryClusterIdentifier.getExtension().providerKey(url);
- String[] keys = registryKey.split(",");
- for (String key : keys) {
- MetadataInfo metadataInfo = metadataInfos.get(key);
+ String registryCluster = RegistryClusterIdentifier.getExtension().providerKey(url);
+ String[] clusters = registryCluster.split(",");
+ for (String cluster : clusters) {
+ MetadataInfo metadataInfo = metadataInfos.get(cluster);
metadataInfo.removeService(url.getProtocolServiceKey());
if (metadataInfo.getServices().isEmpty()) {
- metadataInfos.remove(key);
+ metadataInfos.remove(cluster);
}
}
metadataSemaphore.release();
@@ -199,7 +199,7 @@ public class InMemoryWritableMetadataService implements WritableMetadataService
}
for (Map.Entry<String, MetadataInfo> entry : metadataInfos.entrySet()) {
MetadataInfo metadataInfo = entry.getValue();
- if (revision.equals(metadataInfo.getRevision())) {
+ if (revision.equals(metadataInfo.calAndGetRevision())) {
return metadataInfo;
}
}
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/store/RemoteMetadataServiceImpl.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/store/RemoteMetadataServiceImpl.java
index 2d543e5..c4235f4 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/store/RemoteMetadataServiceImpl.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/store/RemoteMetadataServiceImpl.java
@@ -44,8 +44,7 @@ import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;
import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;
import static org.apache.dubbo.common.constants.CommonConstants.TIMESTAMP_KEY;
import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;
-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER;
-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_KEY;
+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER_KEY;
public class RemoteMetadataServiceImpl {
protected final Logger logger = LoggerFactory.getLogger(getClass());
@@ -61,12 +60,12 @@ public class RemoteMetadataServiceImpl {
public void publishMetadata(String serviceName) {
Map<String, MetadataInfo> metadataInfos = localMetadataService.getMetadataInfos();
- metadataInfos.forEach((registryKey, metadataInfo) -> {
+ metadataInfos.forEach((registryCluster, metadataInfo) -> {
if (!metadataInfo.hasReported()) {
- SubscriberMetadataIdentifier identifier = new SubscriberMetadataIdentifier(serviceName, metadataInfo.getRevision());
- metadataInfo.getRevision();
- metadataInfo.getExtendParams().put(REGISTRY_KEY, registryKey);
- MetadataReport metadataReport = getMetadataReports().get(registryKey);
+ SubscriberMetadataIdentifier identifier = new SubscriberMetadataIdentifier(serviceName, metadataInfo.calAndGetRevision());
+ metadataInfo.calAndGetRevision();
+ metadataInfo.getExtendParams().put(REGISTRY_CLUSTER_KEY, registryCluster);
+ MetadataReport metadataReport = getMetadataReports().get(registryCluster);
if (metadataReport == null) {
metadataReport = getMetadataReports().entrySet().iterator().next().getValue();
}
@@ -80,7 +79,7 @@ public class RemoteMetadataServiceImpl {
SubscriberMetadataIdentifier identifier = new SubscriberMetadataIdentifier(instance.getServiceName(),
ServiceInstanceMetadataUtils.getExportedServicesRevision(instance));
- String registryCluster = instance.getExtendParams().get(REGISTRY_CLUSTER);
+ String registryCluster = instance.getExtendParams().get(REGISTRY_CLUSTER_KEY);
MetadataReport metadataReport = getMetadataReports().get(registryCluster);
if (metadataReport == null) {