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: } } }