This is an automated email from the ASF dual-hosted git repository.

albumenj pushed a commit to branch 3.2
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.2 by this push:
     new d0b98b3090 improve NacosNamingServiceWrapper performance (#11665)
d0b98b3090 is described below

commit d0b98b309006379e57be06ad8d0cda2d8920f760
Author: liuguangliang <[email protected]>
AuthorDate: Wed Mar 8 18:42:27 2023 +0800

    improve NacosNamingServiceWrapper performance (#11665)
    
    Signed-off-by: mantuliu <[email protected]>
---
 .../registry/nacos/NacosNamingServiceWrapper.java  | 44 ++++------------------
 1 file changed, 7 insertions(+), 37 deletions(-)

diff --git 
a/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosNamingServiceWrapper.java
 
b/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosNamingServiceWrapper.java
index 3bd6116d15..2b09d8f675 100644
--- 
a/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosNamingServiceWrapper.java
+++ 
b/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosNamingServiceWrapper.java
@@ -60,7 +60,6 @@ public class NacosNamingServiceWrapper {
 
     private final ConcurrentMap<InstanceId, InstancesInfo> registerStatus = 
new ConcurrentHashMap<>();
     private final ConcurrentMap<SubscribeInfo, NamingService> subscribeStatus 
= new ConcurrentHashMap<>();
-    private final Lock mapLock = new ReentrantLock();
 
     public NacosNamingServiceWrapper(NacosConnectionManager 
nacosConnectionManager, int retryTimes, int sleepMsBetweenRetries) {
         this.nacosConnectionManager = nacosConnectionManager;
@@ -108,13 +107,7 @@ public class NacosNamingServiceWrapper {
 
     public void registerInstance(String serviceName, String group, Instance 
instance) throws NacosException {
         String nacosServiceName = handleInnerSymbol(serviceName);
-        InstancesInfo instancesInfo;
-        try {
-            mapLock.lock();
-            instancesInfo = 
ConcurrentHashMapUtils.computeIfAbsent(registerStatus, new 
InstanceId(nacosServiceName, group), id -> new InstancesInfo());
-        } finally {
-            mapLock.unlock();
-        }
+        InstancesInfo instancesInfo = 
ConcurrentHashMapUtils.computeIfAbsent(registerStatus, new 
InstanceId(nacosServiceName, group), id -> new InstancesInfo());
 
         try {
             instancesInfo.lock();
@@ -176,13 +169,7 @@ public class NacosNamingServiceWrapper {
 
     public void updateInstance(String serviceName, String group, Instance 
oldInstance, Instance newInstance) throws NacosException {
         String nacosServiceName = handleInnerSymbol(serviceName);
-        InstancesInfo instancesInfo;
-        try {
-            mapLock.lock();
-            instancesInfo = 
ConcurrentHashMapUtils.computeIfAbsent(registerStatus, new 
InstanceId(nacosServiceName, group), id -> new InstancesInfo());
-        } finally {
-            mapLock.unlock();
-        }
+        InstancesInfo instancesInfo = 
ConcurrentHashMapUtils.computeIfAbsent(registerStatus, new 
InstanceId(nacosServiceName, group), id -> new InstancesInfo());
 
         try {
             instancesInfo.lock();
@@ -222,13 +209,7 @@ public class NacosNamingServiceWrapper {
 
     public void deregisterInstance(String serviceName, String group, String 
ip, int port) throws NacosException {
         String nacosServiceName = handleInnerSymbol(serviceName);
-        InstancesInfo instancesInfo;
-        try {
-            mapLock.lock();
-            instancesInfo = 
ConcurrentHashMapUtils.computeIfAbsent(registerStatus, new 
InstanceId(nacosServiceName, group), id -> new InstancesInfo());
-        } finally {
-            mapLock.unlock();
-        }
+        InstancesInfo instancesInfo = 
ConcurrentHashMapUtils.computeIfAbsent(registerStatus, new 
InstanceId(nacosServiceName, group), id -> new InstancesInfo());
 
         try {
             instancesInfo.lock();
@@ -249,13 +230,7 @@ public class NacosNamingServiceWrapper {
 
     public void deregisterInstance(String serviceName, String group, Instance 
instance) throws NacosException {
         String nacosServiceName = handleInnerSymbol(serviceName);
-        InstancesInfo instancesInfo;
-        try {
-            mapLock.lock();
-            instancesInfo = 
ConcurrentHashMapUtils.computeIfAbsent(registerStatus, new 
InstanceId(nacosServiceName, group), id -> new InstancesInfo());
-        } finally {
-            mapLock.unlock();
-        }
+        InstancesInfo instancesInfo = 
ConcurrentHashMapUtils.computeIfAbsent(registerStatus, new 
InstanceId(nacosServiceName, group), id -> new InstancesInfo());
 
         try {
             instancesInfo.lock();
@@ -269,14 +244,9 @@ public class NacosNamingServiceWrapper {
             InstanceInfo instanceInfo = optional.get();
             instancesInfo.getInstances().remove(instanceInfo);
 
-            try {
-                mapLock.lock();
-                if (instancesInfo.getInstances().isEmpty()) {
-                    registerStatus.remove(new InstanceId(nacosServiceName, 
group));
-                    instancesInfo.setValid(false);
-                }
-            } finally {
-                mapLock.unlock();
+            if (instancesInfo.getInstances().isEmpty()) {
+                registerStatus.remove(new InstanceId(nacosServiceName, group));
+                instancesInfo.setValid(false);
             }
 
             // only one registered

Reply via email to