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 27be65eca67 Refactor ComputeNodeOnlineHandler (#34936)
27be65eca67 is described below

commit 27be65eca67d7c3519f778e70db4654b8a4cf58a
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Sat Mar 8 06:48:56 2025 +0800

    Refactor ComputeNodeOnlineHandler (#34936)
---
 .../handler/global/node/ComputeNodeOnlineHandler.java    | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeOnlineHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeOnlineHandler.java
index 24c816db0db..cc562d25336 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeOnlineHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeOnlineHandler.java
@@ -17,6 +17,7 @@
 
 package 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node;
 
+import org.apache.shardingsphere.infra.instance.ClusterInstanceRegistry;
 import org.apache.shardingsphere.infra.instance.ComputeNodeData;
 import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
 import org.apache.shardingsphere.infra.instance.metadata.InstanceMetaData;
@@ -56,14 +57,19 @@ public final class ComputeNodeOnlineHandler implements 
GlobalDataChangedEventHan
         if (!NodePathSearcher.isMatchedPath(event.getKey(), 
OnlineNodePath.createInstanceIdSearchCriteria())) {
             return;
         }
+        ClusterInstanceRegistry clusterInstanceRegistry = 
contextManager.getComputeNodeInstanceContext().getClusterInstanceRegistry();
         InstanceType instanceType = 
InstanceType.valueOf(NodePathSearcher.get(event.getKey(), 
OnlineNodePath.createInstanceTypeSearchCriteria()).toUpperCase());
-        String instanceId = NodePathSearcher.find(event.getKey(), 
OnlineNodePath.createInstanceIdSearchCriteria()).orElse("");
+        String instanceId = NodePathSearcher.get(event.getKey(), 
OnlineNodePath.createInstanceIdSearchCriteria());
         ComputeNodeData computeNodeData = new 
YamlComputeNodeDataSwapper().swapToObject(YamlEngine.unmarshal(event.getValue(),
 YamlComputeNodeData.class));
         InstanceMetaData instanceMetaData = 
InstanceMetaDataFactory.create(instanceId, instanceType, computeNodeData);
-        if (Type.ADDED == event.getType()) {
-            
contextManager.getComputeNodeInstanceContext().getClusterInstanceRegistry().add(contextManager.getPersistServiceFacade().getComputeNodePersistService().loadInstance(instanceMetaData));
-        } else if (Type.DELETED == event.getType()) {
-            
contextManager.getComputeNodeInstanceContext().getClusterInstanceRegistry().delete(new
 ComputeNodeInstance(instanceMetaData));
+        switch (event.getType()) {
+            case ADDED:
+                
clusterInstanceRegistry.add(contextManager.getPersistServiceFacade().getComputeNodePersistService().loadInstance(instanceMetaData));
+                break;
+            case DELETED:
+                clusterInstanceRegistry.delete(new 
ComputeNodeInstance(instanceMetaData));
+                break;
+            default:
         }
     }
 }

Reply via email to