You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2022/12/08 10:45:01 UTC

[shardingsphere] branch master updated: Add ensembleTracker parameter support deploy ZooKeeper on cloud (#22745)

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

zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 6473d1fb614 Add ensembleTracker parameter support deploy ZooKeeper on cloud (#22745)
6473d1fb614 is described below

commit 6473d1fb614ef3fd482638d7f3c4793853cdf26a
Author: zhaojinchao <zh...@apache.org>
AuthorDate: Thu Dec 8 18:44:53 2022 +0800

    Add ensembleTracker parameter support deploy ZooKeeper on cloud (#22745)
    
    * Add ensembleTracker parameter support deploy ZooKeeper on cloud
    
    * Fix unit test
---
 .../mode/repository/cluster/zookeeper/ZookeeperRepository.java       | 2 ++
 .../repository/cluster/zookeeper/props/ZookeeperPropertyKey.java     | 5 +++++
 .../mode/repository/cluster/zookeeper/ZookeeperRepositoryTest.java   | 2 ++
 proxy/bootstrap/src/main/resources/conf/server.yaml                  | 1 +
 4 files changed, 10 insertions(+)

diff --git a/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/ZookeeperRepository.java b/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/ZookeeperRepository.java
index 1a52502c4f5..ebd4d54a74b 100644
--- a/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/ZookeeperRepository.java
+++ b/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/ZookeeperRepository.java
@@ -82,7 +82,9 @@ public final class ZookeeperRepository implements ClusterPersistRepository, Inst
         int maxRetries = zookeeperProps.getValue(ZookeeperPropertyKey.MAX_RETRIES);
         int timeToLiveSeconds = zookeeperProps.getValue(ZookeeperPropertyKey.TIME_TO_LIVE_SECONDS);
         int operationTimeoutMilliseconds = zookeeperProps.getValue(ZookeeperPropertyKey.OPERATION_TIMEOUT_MILLISECONDS);
+        boolean ensembleTracker = zookeeperProps.getValue(ZookeeperPropertyKey.ENSEMBLE_TRACKER);
         builder.connectString(config.getServerLists())
+                .ensembleTracker(ensembleTracker)
                 .retryPolicy(new ExponentialBackoffRetry(retryIntervalMilliseconds, maxRetries, retryIntervalMilliseconds * maxRetries))
                 .namespace(config.getNamespace());
         if (0 != timeToLiveSeconds) {
diff --git a/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/props/ZookeeperPropertyKey.java b/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/props/ZookeeperPropertyKey.java
index 43631b17165..010dbf10516 100644
--- a/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/props/ZookeeperPropertyKey.java
+++ b/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/props/ZookeeperPropertyKey.java
@@ -48,6 +48,11 @@ public enum ZookeeperPropertyKey implements TypedPropertyKey {
      */
     OPERATION_TIMEOUT_MILLISECONDS("operationTimeoutMilliseconds", String.valueOf(500), int.class),
     
+    /**
+     * ZooKeeper client ensemble tracker.
+     */
+    ENSEMBLE_TRACKER("ensembleTracker", String.valueOf(Boolean.TRUE), boolean.class),
+    
     /**
      * ZooKeeper client connection authorization schema name.
      */
diff --git a/mode/type/cluster/repository/provider/zookeeper/src/test/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/ZookeeperRepositoryTest.java b/mode/type/cluster/repository/provider/zookeeper/src/test/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/ZookeeperRepositoryTest.java
index 52c075572c3..cc0248ed8c7 100644
--- a/mode/type/cluster/repository/provider/zookeeper/src/test/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/ZookeeperRepositoryTest.java
+++ b/mode/type/cluster/repository/provider/zookeeper/src/test/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/ZookeeperRepositoryTest.java
@@ -67,6 +67,7 @@ import static org.hamcrest.MatcherAssert.assertThat;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.mock;
@@ -130,6 +131,7 @@ public final class ZookeeperRepositoryTest {
         builderFiled.set(REPOSITORY, builder);
         when(builder.connectString(anyString())).thenReturn(builder);
         when(builder.retryPolicy(any(RetryPolicy.class))).thenReturn(builder);
+        when(builder.ensembleTracker(anyBoolean())).thenReturn(builder);
         when(builder.namespace(anyString())).thenReturn(builder);
         when(builder.sessionTimeoutMs(anyInt())).thenReturn(builder);
         when(builder.connectionTimeoutMs(anyInt())).thenReturn(builder);
diff --git a/proxy/bootstrap/src/main/resources/conf/server.yaml b/proxy/bootstrap/src/main/resources/conf/server.yaml
index 166959eaa3c..bdef75565e7 100644
--- a/proxy/bootstrap/src/main/resources/conf/server.yaml
+++ b/proxy/bootstrap/src/main/resources/conf/server.yaml
@@ -32,6 +32,7 @@
 #      timeToLiveSeconds: 60
 #      maxRetries: 3
 #      operationTimeoutMilliseconds: 500
+#      ensembleTracker: true
 #
 #authority:
 #  users: