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/09/27 11:20:59 UTC
[dubbo] branch 3.0 updated: optimize Multiple some code (#8900)
This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.0 by this push:
new 10b3be9 optimize Multiple some code (#8900)
10b3be9 is described below
commit 10b3be9b8ac1828b671a198cb88d586d174b29d0
Author: Wang Chengming <63...@qq.com>
AuthorDate: Mon Sep 27 19:20:50 2021 +0800
optimize Multiple some code (#8900)
---
.../dubbo/registry/multiple/MultipleRegistry.java | 33 +++++++++++-----------
.../multiple/MultipleServiceDiscovery.java | 21 ++++++++------
2 files changed, 29 insertions(+), 25 deletions(-)
diff --git a/dubbo-registry/dubbo-registry-multiple/src/main/java/org/apache/dubbo/registry/multiple/MultipleRegistry.java b/dubbo-registry/dubbo-registry-multiple/src/main/java/org/apache/dubbo/registry/multiple/MultipleRegistry.java
index 4ee590e..a4ed56b 100644
--- a/dubbo-registry/dubbo-registry-multiple/src/main/java/org/apache/dubbo/registry/multiple/MultipleRegistry.java
+++ b/dubbo-registry/dubbo-registry-multiple/src/main/java/org/apache/dubbo/registry/multiple/MultipleRegistry.java
@@ -42,17 +42,16 @@ public class MultipleRegistry extends AbstractRegistry {
public static final String REGISTRY_FOR_SERVICE = "service-registry";
public static final String REGISTRY_FOR_REFERENCE = "reference-registry";
-
- protected RegistryFactory registryFactory;
private final Map<String, Registry> serviceRegistries = new ConcurrentHashMap<>(4);
- private final Map<String, Registry> referenceRegistries = new ConcurrentHashMap<String, Registry>(4);
- private final Map<NotifyListener, MultipleNotifyListenerWrapper> multipleNotifyListenerMap = new ConcurrentHashMap<NotifyListener, MultipleNotifyListenerWrapper>(32);
+ private final Map<String, Registry> referenceRegistries = new ConcurrentHashMap<>(4);
+ private final Map<NotifyListener, MultipleNotifyListenerWrapper> multipleNotifyListenerMap = new ConcurrentHashMap<>(32);
+ private final URL registryUrl;
+ private final String applicationName;
+ protected RegistryFactory registryFactory;
protected List<String> origServiceRegistryURLs;
protected List<String> origReferenceRegistryURLs;
protected List<String> effectServiceRegistryURLs;
protected List<String> effectReferenceRegistryURLs;
- private URL registryUrl;
- private String applicationName;
public MultipleRegistry(URL url) {
this(url, true, true);
@@ -61,7 +60,7 @@ public class MultipleRegistry extends AbstractRegistry {
boolean defaultRegistry = url.getParameter(CommonConstants.DEFAULT_KEY, true);
if (defaultRegistry && effectServiceRegistryURLs.isEmpty() && effectReferenceRegistryURLs.isEmpty()) {
throw new IllegalArgumentException("Illegal registry url. You need to configure parameter " +
- REGISTRY_FOR_SERVICE + " or " + REGISTRY_FOR_REFERENCE);
+ REGISTRY_FOR_SERVICE + " or " + REGISTRY_FOR_REFERENCE);
}
}
@@ -73,7 +72,7 @@ public class MultipleRegistry extends AbstractRegistry {
init();
checkApplicationName(this.applicationName);
- // This urls contain parameter and it donot inherit from the parameter of url in MultipleRegistry
+ // This urls contain parameter, and it does not inherit from the parameter of url in MultipleRegistry
Map<String, Registry> registryMap = new HashMap<>();
if (initServiceRegistry) {
@@ -85,7 +84,7 @@ public class MultipleRegistry extends AbstractRegistry {
}
protected void initServiceRegistry(URL url, Map<String, Registry> registryMap) {
- origServiceRegistryURLs = url.getParameter(REGISTRY_FOR_SERVICE, new ArrayList<String>());
+ origServiceRegistryURLs = url.getParameter(REGISTRY_FOR_SERVICE, new ArrayList<>());
effectServiceRegistryURLs = this.filterServiceRegistry(origServiceRegistryURLs);
for (String tmpUrl : effectServiceRegistryURLs) {
if (registryMap.get(tmpUrl) != null) {
@@ -99,7 +98,7 @@ public class MultipleRegistry extends AbstractRegistry {
}
protected void initReferenceRegistry(URL url, Map<String, Registry> registryMap) {
- origReferenceRegistryURLs = url.getParameter(REGISTRY_FOR_REFERENCE, new ArrayList<String>());
+ origReferenceRegistryURLs = url.getParameter(REGISTRY_FOR_REFERENCE, new ArrayList<>());
effectReferenceRegistryURLs = this.filterReferenceRegistry(origReferenceRegistryURLs);
for (String tmpUrl : effectReferenceRegistryURLs) {
if (registryMap.get(tmpUrl) != null) {
@@ -120,7 +119,7 @@ public class MultipleRegistry extends AbstractRegistry {
@Override
public boolean isAvailable() {
- boolean available = serviceRegistries.isEmpty() ? true : false;
+ boolean available = serviceRegistries.isEmpty();
for (Registry serviceRegistry : serviceRegistries.values()) {
if (serviceRegistry.isAvailable()) {
available = true;
@@ -130,7 +129,7 @@ public class MultipleRegistry extends AbstractRegistry {
return false;
}
- available = referenceRegistries.isEmpty() ? true : false;
+ available = referenceRegistries.isEmpty();
for (Registry referenceRegistry : referenceRegistries.values()) {
if (referenceRegistry.isAvailable()) {
available = true;
@@ -144,7 +143,7 @@ public class MultipleRegistry extends AbstractRegistry {
@Override
public void destroy() {
- Set<Registry> registries = new HashSet<Registry>(serviceRegistries.values());
+ Set<Registry> registries = new HashSet<>(serviceRegistries.values());
registries.addAll(referenceRegistries.values());
for (Registry registry : registries) {
registry.destroy();
@@ -195,7 +194,7 @@ public class MultipleRegistry extends AbstractRegistry {
@Override
public List<URL> lookup(URL url) {
- List<URL> urls = new ArrayList<URL>();
+ List<URL> urls = new ArrayList<>();
for (Registry registry : referenceRegistries.values()) {
List<URL> tmpUrls = registry.lookup(url);
if (!CollectionUtils.isEmpty(tmpUrls)) {
@@ -272,7 +271,7 @@ public class MultipleRegistry extends AbstractRegistry {
}
public synchronized void notifySourceListener() {
- List<URL> notifyURLs = new ArrayList<URL>();
+ List<URL> notifyURLs = new ArrayList<>();
URL emptyURL = null;
for (SingleNotifyListener singleNotifyListener : registryMap.values()) {
List<URL> tmpUrls = singleNotifyListener.getUrlList();
@@ -281,8 +280,8 @@ public class MultipleRegistry extends AbstractRegistry {
}
// empty protocol
if (tmpUrls.size() == 1
- && tmpUrls.get(0) != null
- && EMPTY_PROTOCOL.equals(tmpUrls.get(0).getProtocol())) {
+ && tmpUrls.get(0) != null
+ && EMPTY_PROTOCOL.equals(tmpUrls.get(0).getProtocol())) {
// if only one empty
if (emptyURL == null) {
emptyURL = tmpUrls.get(0);
diff --git a/dubbo-registry/dubbo-registry-multiple/src/main/java/org/apache/dubbo/registry/multiple/MultipleServiceDiscovery.java b/dubbo-registry/dubbo-registry-multiple/src/main/java/org/apache/dubbo/registry/multiple/MultipleServiceDiscovery.java
index 8ca95f6..cd09bed 100644
--- a/dubbo-registry/dubbo-registry-multiple/src/main/java/org/apache/dubbo/registry/multiple/MultipleServiceDiscovery.java
+++ b/dubbo-registry/dubbo-registry-multiple/src/main/java/org/apache/dubbo/registry/multiple/MultipleServiceDiscovery.java
@@ -36,6 +36,8 @@ import java.util.function.Function;
public class MultipleServiceDiscovery implements ServiceDiscovery {
public static final String REGISTRY_PREFIX_KEY = "child.";
+ private static final String REGISTRY_TYPE = "registry-type";
+ private static final String SERVICE = "service";
private final Map<String, ServiceDiscovery> serviceDiscoveries = new ConcurrentHashMap<>();
private URL registryURL;
private ServiceInstance serviceInstance;
@@ -51,7 +53,7 @@ public class MultipleServiceDiscovery implements ServiceDiscovery {
for (String key : parameters.keySet()) {
if (key.startsWith(REGISTRY_PREFIX_KEY)) {
URL url = URL.valueOf(registryURL.getParameter(key)).addParameter(CommonConstants.APPLICATION_KEY, applicationName)
- .addParameter("registry-type", "service");
+ .addParameter(REGISTRY_TYPE, SERVICE);
ServiceDiscovery serviceDiscovery = ServiceDiscoveryFactory.getExtension(url).getServiceDiscovery(url);
serviceDiscovery.initialize(url);
serviceDiscoveries.put(key, serviceDiscovery);
@@ -94,14 +96,14 @@ public class MultipleServiceDiscovery implements ServiceDiscovery {
}
@Override
- public void addServiceInstancesChangedListener(ServiceInstancesChangedListener listener) throws NullPointerException, IllegalArgumentException {
+ public void addServiceInstancesChangedListener(ServiceInstancesChangedListener listener)
+ throws NullPointerException, IllegalArgumentException {
MultiServiceInstancesChangedListener multiListener = (MultiServiceInstancesChangedListener) listener;
for (String registryKey : serviceDiscoveries.keySet()) {
ServiceDiscovery serviceDiscovery = serviceDiscoveries.get(registryKey);
- SingleServiceInstancesChangedListener singleListener = multiListener.getAndComputeIfAbsent(registryKey, k -> {
- return new SingleServiceInstancesChangedListener(listener.getServiceNames(), serviceDiscovery, multiListener);
- });
+ SingleServiceInstancesChangedListener singleListener = multiListener.getAndComputeIfAbsent(registryKey, k ->
+ new SingleServiceInstancesChangedListener(listener.getServiceNames(), serviceDiscovery, multiListener));
serviceDiscovery.addServiceInstancesChangedListener(singleListener);
}
}
@@ -112,7 +114,8 @@ public class MultipleServiceDiscovery implements ServiceDiscovery {
}
@Override
- public Page<ServiceInstance> getInstances(String serviceName, int offset, int pageSize, boolean healthyOnly) throws NullPointerException, IllegalArgumentException, UnsupportedOperationException {
+ public Page<ServiceInstance> getInstances(String serviceName, int offset, int pageSize, boolean healthyOnly)
+ throws NullPointerException, IllegalArgumentException, UnsupportedOperationException {
List<ServiceInstance> serviceInstanceList = new ArrayList<>();
for (ServiceDiscovery serviceDiscovery : serviceDiscoveries.values()) {
@@ -165,7 +168,8 @@ public class MultipleServiceDiscovery implements ServiceDiscovery {
singleListenerMap.put(registryKey, singleListener);
}
- public SingleServiceInstancesChangedListener getAndComputeIfAbsent(String registryKey, Function<String, SingleServiceInstancesChangedListener> func) {
+ public SingleServiceInstancesChangedListener getAndComputeIfAbsent(String registryKey,
+ Function<String, SingleServiceInstancesChangedListener> func) {
return singleListenerMap.computeIfAbsent(registryKey, func);
}
}
@@ -174,7 +178,8 @@ public class MultipleServiceDiscovery implements ServiceDiscovery {
private final MultiServiceInstancesChangedListener multiListener;
volatile ServiceInstancesChangedEvent event;
- public SingleServiceInstancesChangedListener(Set<String> serviceNames, ServiceDiscovery serviceDiscovery, MultiServiceInstancesChangedListener multiListener) {
+ public SingleServiceInstancesChangedListener(Set<String> serviceNames, ServiceDiscovery serviceDiscovery,
+ MultiServiceInstancesChangedListener multiListener) {
super(serviceNames, serviceDiscovery);
this.multiListener = multiListener;
}