You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2021/05/27 06:58:23 UTC
[servicecomb-java-chassis] branch master updated: [SCB-2267]provide
api to set registry name to avoid multi serivce center cache got
wrong(#2387)
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
The following commit(s) were added to refs/heads/master by this push:
new c04cc5f [SCB-2267]provide api to set registry name to avoid multi serivce center cache got wrong(#2387)
c04cc5f is described below
commit c04cc5f5c5376f66b1b79c8cceb8171ca39ac329
Author: wxkwxkwxk1231 <ka...@protonmail.com>
AuthorDate: Thu May 27 14:58:16 2021 +0800
[SCB-2267]provide api to set registry name to avoid multi serivce center cache got wrong(#2387)
---
.../ServerBServiceCenterConfiguration.java | 1 +
.../servicecomb/serviceregistry/RegistryUtils.java | 16 ++++++++++++++--
.../config/ServiceRegistryConfigCustomizer.java | 5 +++++
3 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/java/org/apache/servicecomb/demo/multiServiceCenterClient/ServerBServiceCenterConfiguration.java b/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/java/org/apache/servicecomb/demo/multiServiceCenterClient/ServerBServiceCenterConfiguration.java
index 4c13d9b..d27e967 100644
--- a/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/java/org/apache/servicecomb/demo/multiServiceCenterClient/ServerBServiceCenterConfiguration.java
+++ b/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/java/org/apache/servicecomb/demo/multiServiceCenterClient/ServerBServiceCenterConfiguration.java
@@ -32,6 +32,7 @@ public class ServerBServiceCenterConfiguration {
// use a different http client instance
.setClientName("registry-serverB")
.setWatchClientName("registry-watch-serverB")
+ .setRegistryName("server-B")
.get();
}
}
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/RegistryUtils.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/RegistryUtils.java
index d2c4239..221a95f 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/RegistryUtils.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/RegistryUtils.java
@@ -253,8 +253,20 @@ public final class RegistryUtils {
public static void addExtraServiceRegistry(ServiceRegistry serviceRegistry) {
Objects.requireNonNull(serviceRegistry);
- LOGGER.info("extra ServiceRegistry added: [{}], [{}]", serviceRegistry.getName(), serviceRegistry.getClass());
- EXTRA_SERVICE_REGISTRIES.put(serviceRegistry.getName(), serviceRegistry);
+ String serviceRegistryName = serviceRegistry.getName();
+ if (serviceRegistryName.equals(ServiceRegistry.DEFAULT_REGISTRY_NAME)) {
+ LOGGER.error("Registry name cannot be same as default registry name!");
+ throw new IllegalArgumentException("Registry Name Duplicated");
+ }
+ if (EXTRA_SERVICE_REGISTRIES.containsKey(serviceRegistryName)) {
+ LOGGER.error("Registry {} is duplicated between implementation {} and {}"
+ + ", please set different names for each implementations",
+ serviceRegistryName, serviceRegistry.getClass().getName(),
+ EXTRA_SERVICE_REGISTRIES.get(serviceRegistryName).getClass().getName());
+ throw new IllegalArgumentException("Registry Name Duplicated");
+ }
+ LOGGER.info("extra ServiceRegistry added: [{}], [{}]", serviceRegistryName, serviceRegistry.getClass());
+ EXTRA_SERVICE_REGISTRIES.put(serviceRegistryName, serviceRegistry);
}
/**
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfigCustomizer.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfigCustomizer.java
index 5ffdd31..bad4133 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfigCustomizer.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfigCustomizer.java
@@ -46,6 +46,11 @@ public class ServiceRegistryConfigCustomizer {
return this;
}
+ public ServiceRegistryConfigCustomizer setRegistryName(String registryName) {
+ this.original.setRegistryName(registryName);
+ return this;
+ }
+
public ServiceRegistryConfigCustomizer setWatchClientName(String watchClientName) {
this.original.setWatchClientName(watchClientName);
return this;