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 473ea36b04 fix: Support close the Curator EnsembleTracker (#14281)
473ea36b04 is described below

commit 473ea36b04d93e2efc439848ff65ec5b3bee06d9
Author: aofall <[email protected]>
AuthorDate: Tue Jun 4 12:54:44 2024 +0800

    fix: Support close the Curator EnsembleTracker (#14281)
---
 .../main/java/org/apache/dubbo/common/constants/CommonConstants.java   | 2 ++
 .../org/apache/dubbo/remoting/zookeeper/AbstractZookeeperClient.java   | 1 +
 .../dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClient.java     | 3 +++
 3 files changed, 6 insertions(+)

diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/common/constants/CommonConstants.java
 
b/dubbo-common/src/main/java/org/apache/dubbo/common/constants/CommonConstants.java
index 0178a5382c..e026499418 100644
--- 
a/dubbo-common/src/main/java/org/apache/dubbo/common/constants/CommonConstants.java
+++ 
b/dubbo-common/src/main/java/org/apache/dubbo/common/constants/CommonConstants.java
@@ -646,4 +646,6 @@ public interface CommonConstants {
     String DUBBO_MANUAL_REGISTER_KEY = "dubbo.application.manual-register";
 
     String DUBBO2_COMPACT_ENABLE = "dubbo.compact.enable";
+
+    String ZOOKEEPER_ENSEMBLE_TRACKER_KEY = "zookeeper.ensemble.tracker";
 }
diff --git 
a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/zookeeper/AbstractZookeeperClient.java
 
b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/zookeeper/AbstractZookeeperClient.java
index e830246617..caef4385bf 100644
--- 
a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/zookeeper/AbstractZookeeperClient.java
+++ 
b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/zookeeper/AbstractZookeeperClient.java
@@ -40,6 +40,7 @@ public abstract class 
AbstractZookeeperClient<TargetDataListener, TargetChildLis
     // may hang up to wait name resolution up to 10s
     protected int DEFAULT_CONNECTION_TIMEOUT_MS = 30 * 1000;
     protected int DEFAULT_SESSION_TIMEOUT_MS = 60 * 1000;
+    protected boolean DEFAULT_ENSEMBLE_TRACKER = true;
 
     private final URL url;
 
diff --git 
a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/main/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClient.java
 
b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/main/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClient.java
index 65b6bd6797..1afb7fc1dc 100644
--- 
a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/main/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClient.java
+++ 
b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/main/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClient.java
@@ -55,6 +55,7 @@ import org.apache.zookeeper.data.Stat;
 
 import static org.apache.dubbo.common.constants.CommonConstants.SESSION_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;
+import static 
org.apache.dubbo.common.constants.CommonConstants.ZOOKEEPER_ENSEMBLE_TRACKER_KEY;
 import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_FAILED_CONNECT_REGISTRY;
 import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_ZOOKEEPER_EXCEPTION;
 
@@ -74,10 +75,12 @@ public class Curator5ZookeeperClient
         try {
             int timeout = url.getParameter(TIMEOUT_KEY, 
DEFAULT_CONNECTION_TIMEOUT_MS);
             int sessionExpireMs = url.getParameter(SESSION_KEY, 
DEFAULT_SESSION_TIMEOUT_MS);
+            boolean ensembleTracker = 
url.getParameter(ZOOKEEPER_ENSEMBLE_TRACKER_KEY, DEFAULT_ENSEMBLE_TRACKER);
             CuratorFrameworkFactory.Builder builder = 
CuratorFrameworkFactory.builder()
                     .connectString(url.getBackupAddress())
                     .retryPolicy(new RetryNTimes(1, 1000))
                     .connectionTimeoutMs(timeout)
+                    .ensembleTracker(ensembleTracker)
                     .sessionTimeoutMs(sessionExpireMs);
             String userInformation = url.getUserInformation();
             if (userInformation != null && userInformation.length() > 0) {

Reply via email to