You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2022/05/25 11:53:48 UTC

[shardingsphere] branch master updated: remove attributes node of registry center (#17947)

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

duanzhengqiang 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 0d6e1a9a74f remove attributes node of registry center (#17947)
0d6e1a9a74f is described below

commit 0d6e1a9a74f00d35f4b3ecbc843c1a9710eeba13
Author: Haoran Meng <me...@gmail.com>
AuthorDate: Wed May 25 19:53:37 2022 +0800

    remove attributes node of registry center (#17947)
---
 .../mode/metadata/persist/node/ComputeNode.java    | 31 +++++++---------------
 .../metadata/persist/node/ComputeNodeTest.java     | 21 ++++++---------
 .../watcher/ComputeNodeStateChangedWatcher.java    |  2 +-
 .../ComputeNodeStateChangedWatcherTest.java        | 16 +++++------
 4 files changed, 27 insertions(+), 43 deletions(-)

diff --git a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/node/ComputeNode.java b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/node/ComputeNode.java
index 23e226e874b..2f62956227c 100644
--- a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/node/ComputeNode.java
+++ b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/node/ComputeNode.java
@@ -35,8 +35,6 @@ public final class ComputeNode {
     
     private static final String ONLINE_NODE = "online";
     
-    private static final String ATTRIBUTES_NODE = "attributes";
-    
     private static final String LABELS_NODE = "labels";
     
     private static final String PROCESS_TRIGGER = "process_trigger";
@@ -105,7 +103,7 @@ public final class ComputeNode {
      * @return path of compute node instance labels
      */
     public static String getInstanceLabelsNodePath(final String instanceId) {
-        return String.join("/", "", ROOT_NODE, COMPUTE_NODE, ATTRIBUTES_NODE, instanceId, LABELS_NODE);
+        return String.join("/", "", ROOT_NODE, COMPUTE_NODE, LABELS_NODE, instanceId);
     }
     
     /**
@@ -115,16 +113,7 @@ public final class ComputeNode {
      * @return path of compute node xa recovery id
      */
     public static String getInstanceXaRecoveryIdNodePath(final String instanceId) {
-        return String.join("/", "", ROOT_NODE, COMPUTE_NODE, ATTRIBUTES_NODE, instanceId, XA_RECOVERY_ID_NODE);
-    }
-    
-    /**
-     * Get attributes node path.
-     * 
-     * @return attributes node path
-     */
-    public static String getAttributesNodePath() {
-        return String.join("/", "", ROOT_NODE, COMPUTE_NODE, ATTRIBUTES_NODE);
+        return String.join("/", "", ROOT_NODE, COMPUTE_NODE, XA_RECOVERY_ID_NODE, instanceId);
     }
     
     /**
@@ -143,19 +132,19 @@ public final class ComputeNode {
      * @return worker id path
      */
     public static String getInstanceWorkerIdNodePath(final String instanceId) {
-        return String.join("/", "", ROOT_NODE, COMPUTE_NODE, ATTRIBUTES_NODE, instanceId, WORKER_ID);
+        return String.join("/", "", ROOT_NODE, COMPUTE_NODE, WORKER_ID, instanceId);
     }
     
     /**
-     * Get instance id by status path.
+     * Get instance id by compute node path.
      * 
-     * @param attributesPath attributes path
+     * @param computeNodePath compute node path
      * @return instance id
      */
-    public static String getInstanceIdByAttributes(final String attributesPath) {
-        Pattern pattern = Pattern.compile(getAttributesNodePath() + "/([\\S]+)" + "(/status|/worker_id|/labels|/xa_recovery_id)$", Pattern.CASE_INSENSITIVE);
-        Matcher matcher = pattern.matcher(attributesPath);
-        return matcher.find() ? matcher.group(1) : "";
+    public static String getInstanceIdByComputeNode(final String computeNodePath) {
+        Pattern pattern = Pattern.compile(getComputeNodePath() + "(/status|/worker_id|/labels|/xa_recovery_id)" + "/([\\S]+)$", Pattern.CASE_INSENSITIVE);
+        Matcher matcher = pattern.matcher(computeNodePath);
+        return matcher.find() ? matcher.group(2) : "";
     }
     
     /**
@@ -165,7 +154,7 @@ public final class ComputeNode {
      * @return instance status node path
      */
     public static String getInstanceStatusNodePath(final String instanceId) {
-        return String.join("/", "", ROOT_NODE, COMPUTE_NODE, ATTRIBUTES_NODE, instanceId, STATUS_NODE);
+        return String.join("/", "", ROOT_NODE, COMPUTE_NODE, STATUS_NODE, instanceId);
     }
     
     /**
diff --git a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/node/ComputeNodeTest.java b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/node/ComputeNodeTest.java
index 703e24c5cb2..235be7674c5 100644
--- a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/node/ComputeNodeTest.java
+++ b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/node/ComputeNodeTest.java
@@ -56,34 +56,29 @@ public final class ComputeNodeTest {
     
     @Test
     public void assertGetInstanceLabelsNodePath() {
-        assertThat(ComputeNode.getInstanceLabelsNodePath("127.0.0.1@3307"), is("/nodes/compute_nodes/attributes/127.0.0.1@3307/labels"));
-    }
-    
-    @Test
-    public void assertGetAttributesNodePath() {
-        assertThat(ComputeNode.getAttributesNodePath(), is("/nodes/compute_nodes/attributes"));
+        assertThat(ComputeNode.getInstanceLabelsNodePath("127.0.0.1@3307"), is("/nodes/compute_nodes/labels/127.0.0.1@3307"));
     }
     
     @Test
     public void assertGetInstanceWorkerIdNodePath() {
-        assertThat(ComputeNode.getInstanceWorkerIdNodePath("127.0.0.1@3307"), is("/nodes/compute_nodes/attributes/127.0.0.1@3307/worker_id"));
+        assertThat(ComputeNode.getInstanceWorkerIdNodePath("127.0.0.1@3307"), is("/nodes/compute_nodes/worker_id/127.0.0.1@3307"));
     }
     
     @Test
-    public void assertGetInstanceIdByAttributes() {
-        assertThat(ComputeNode.getInstanceIdByAttributes("/nodes/compute_nodes/attributes/127.0.0.1@3307/status"), is("127.0.0.1@3307"));
-        assertThat(ComputeNode.getInstanceIdByAttributes("/nodes/compute_nodes/attributes/127.0.0.1@3308/worker_id"), is("127.0.0.1@3308"));
-        assertThat(ComputeNode.getInstanceIdByAttributes("/nodes/compute_nodes/attributes/127.0.0.1@3309/labels"), is("127.0.0.1@3309"));
+    public void assertGetInstanceIdByComuteNodePath() {
+        assertThat(ComputeNode.getInstanceIdByComputeNode("/nodes/compute_nodes/status/127.0.0.1@3307"), is("127.0.0.1@3307"));
+        assertThat(ComputeNode.getInstanceIdByComputeNode("/nodes/compute_nodes/worker_id/127.0.0.1@3308"), is("127.0.0.1@3308"));
+        assertThat(ComputeNode.getInstanceIdByComputeNode("/nodes/compute_nodes/labels/127.0.0.1@3309"), is("127.0.0.1@3309"));
     }
     
     @Test
     public void assertGetInstanceStatusNodePath() {
-        assertThat(ComputeNode.getInstanceStatusNodePath("127.0.0.1@3307"), is("/nodes/compute_nodes/attributes/127.0.0.1@3307/status"));
+        assertThat(ComputeNode.getInstanceStatusNodePath("127.0.0.1@3307"), is("/nodes/compute_nodes/status/127.0.0.1@3307"));
     }
     
     @Test
     public void assertGetInstanceXaRecoveryIdNodePath() {
-        assertThat(ComputeNode.getInstanceXaRecoveryIdNodePath("127.0.0.1@3307"), is("/nodes/compute_nodes/attributes/127.0.0.1@3307/xa_recovery_id"));
+        assertThat(ComputeNode.getInstanceXaRecoveryIdNodePath("127.0.0.1@3307"), is("/nodes/compute_nodes/xa_recovery_id/127.0.0.1@3307"));
     }
     
     @Test
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/status/compute/watcher/ComputeNodeStateChangedWatcher.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/status/compute/watcher/ComputeNodeStateChan [...]
index f2f75ae4a03..fc56ba6e0f5 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/status/compute/watcher/ComputeNodeStateChangedWatcher.java
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/status/compute/watcher/ComputeNodeStateChangedWatcher.java
@@ -60,7 +60,7 @@ public final class ComputeNodeStateChangedWatcher implements GovernanceWatcher<G
     
     @Override
     public Optional<GovernanceEvent> createGovernanceEvent(final DataChangedEvent event) {
-        String instanceId = ComputeNode.getInstanceIdByAttributes(event.getKey());
+        String instanceId = ComputeNode.getInstanceIdByComputeNode(event.getKey());
         if (!Strings.isNullOrEmpty(instanceId)) {
             if (event.getKey().equals(ComputeNode.getInstanceStatusNodePath(instanceId))) {
                 Collection<String> status = Strings.isNullOrEmpty(event.getValue()) ? new ArrayList<>() : YamlEngine.unmarshal(event.getValue(), Collection.class);
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/status/compute/watcher/ComputeNodeStateChangedWatcherTest.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/status/compute/watcher/ComputeNodeState [...]
index 640f90bec18..a5504b71e8a 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/status/compute/watcher/ComputeNodeStateChangedWatcherTest.java
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/status/compute/watcher/ComputeNodeStateChangedWatcherTest.java
@@ -37,8 +37,8 @@ import static org.junit.Assert.assertTrue;
 public final class ComputeNodeStateChangedWatcherTest {
     
     @Test
-    public void assertCreateEventWhenEnabled() {
-        Optional<GovernanceEvent> actual = new ComputeNodeStateChangedWatcher().createGovernanceEvent(new DataChangedEvent("/nodes/compute_nodes/attributes/127.0.0.1@3307/status",
+    public void assertCreateEventWhenDisabled() {
+        Optional<GovernanceEvent> actual = new ComputeNodeStateChangedWatcher().createGovernanceEvent(new DataChangedEvent("/nodes/compute_nodes/status/127.0.0.1@3307",
                 YamlEngine.marshal(Arrays.asList(ComputeNodeStatus.CIRCUIT_BREAK.name())), Type.ADDED));
         assertTrue(actual.isPresent());
         assertThat(((StateEvent) actual.get()).getStatus(), is(Arrays.asList(ComputeNodeStatus.CIRCUIT_BREAK.name())));
@@ -46,9 +46,9 @@ public final class ComputeNodeStateChangedWatcherTest {
     }
     
     @Test
-    public void assertCreateEventWhenDisabled() {
+    public void assertCreateEventWhenDEnabled() {
         Optional<GovernanceEvent> actual = new ComputeNodeStateChangedWatcher()
-                .createGovernanceEvent(new DataChangedEvent("/nodes/compute_nodes/attributes/127.0.0.1@3307/status", "", Type.UPDATED));
+                .createGovernanceEvent(new DataChangedEvent("/nodes/compute_nodes/status/127.0.0.1@3307", "", Type.UPDATED));
         assertTrue(actual.isPresent());
         assertTrue(((StateEvent) actual.get()).getStatus().isEmpty());
         assertThat(((StateEvent) actual.get()).getInstanceId(), is("127.0.0.1@3307"));
@@ -57,7 +57,7 @@ public final class ComputeNodeStateChangedWatcherTest {
     @Test
     public void assertCreateAddWorkerIdEvent() {
         Optional<GovernanceEvent> actual = new ComputeNodeStateChangedWatcher()
-                .createGovernanceEvent(new DataChangedEvent("/nodes/compute_nodes/attributes/127.0.0.1@3307/worker_id", "123", Type.ADDED));
+                .createGovernanceEvent(new DataChangedEvent("/nodes/compute_nodes/worker_id/127.0.0.1@3307", "123", Type.ADDED));
         assertTrue(actual.isPresent());
         assertThat(((WorkerIdEvent) actual.get()).getWorkerId(), is(123L));
         assertThat(((WorkerIdEvent) actual.get()).getInstanceId(), is("127.0.0.1@3307"));
@@ -66,7 +66,7 @@ public final class ComputeNodeStateChangedWatcherTest {
     @Test
     public void assertCreateUpdateWorkerIdEvent() {
         Optional<GovernanceEvent> actual = new ComputeNodeStateChangedWatcher()
-                .createGovernanceEvent(new DataChangedEvent("/nodes/compute_nodes/attributes/127.0.0.1@3307/worker_id", "123", Type.UPDATED));
+                .createGovernanceEvent(new DataChangedEvent("/nodes/compute_nodes/worker_id/127.0.0.1@3307", "123", Type.UPDATED));
         assertTrue(actual.isPresent());
         assertThat(((WorkerIdEvent) actual.get()).getWorkerId(), is(123L));
         assertThat(((WorkerIdEvent) actual.get()).getInstanceId(), is("127.0.0.1@3307"));
@@ -75,7 +75,7 @@ public final class ComputeNodeStateChangedWatcherTest {
     @Test
     public void assertCreateAddLabelEvent() {
         Optional<GovernanceEvent> actual = new ComputeNodeStateChangedWatcher()
-                .createGovernanceEvent(new DataChangedEvent("/nodes/compute_nodes/attributes/127.0.0.1@3307/labels",
+                .createGovernanceEvent(new DataChangedEvent("/nodes/compute_nodes/labels/127.0.0.1@3307",
                         YamlEngine.marshal(Arrays.asList("label_1", "label_2")), Type.ADDED));
         assertTrue(actual.isPresent());
         assertThat(((LabelsEvent) actual.get()).getLabels(), is(Arrays.asList("label_1", "label_2")));
@@ -85,7 +85,7 @@ public final class ComputeNodeStateChangedWatcherTest {
     @Test
     public void assertCreateUpdateLabelsEvent() {
         Optional<GovernanceEvent> actual = new ComputeNodeStateChangedWatcher()
-                .createGovernanceEvent(new DataChangedEvent("/nodes/compute_nodes/attributes/127.0.0.1@3307/labels",
+                .createGovernanceEvent(new DataChangedEvent("/nodes/compute_nodes/labels/127.0.0.1@3307",
                         YamlEngine.marshal(Arrays.asList("label_1", "label_2")), Type.UPDATED));
         assertTrue(actual.isPresent());
         assertThat(((LabelsEvent) actual.get()).getLabels(), is(Arrays.asList("label_1", "label_2")));