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