menghaoranss commented on a change in pull request #6187: URL: https://github.com/apache/shardingsphere/pull/6187#discussion_r448782852
########## File path: shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-registrycenter/src/main/java/org/apache/shardingsphere/orchestration/core/registrycenter/instance/OrchestrationInstance.java ########## @@ -29,21 +28,30 @@ public final class OrchestrationInstance { private static final String DELIMITER = "@"; - - private static final OrchestrationInstance INSTANCE = new OrchestrationInstance(); + + private static OrchestrationInstance instance; private final String instanceId; - - private OrchestrationInstance() { - instanceId = IpUtils.getIp() + DELIMITER + ManagementFactory.getRuntimeMXBean().getName().split(DELIMITER)[0] + DELIMITER + UUID.randomUUID().toString(); + + public OrchestrationInstance(final int identifier) { + instanceId = IpUtils.getIp() + DELIMITER + identifier + DELIMITER + UUID.randomUUID().toString(); } - + /** * Get instance. - * - * @return instance + * + * @param identifier identifier on which the instance is running + * @return instance the orchestration instance */ - public static OrchestrationInstance getInstance() { - return INSTANCE; + public static OrchestrationInstance getInstance(final int identifier) { Review comment: This method is unnecessary. ########## File path: shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-registrycenter/src/main/java/org/apache/shardingsphere/orchestration/core/registrycenter/RegistryCenter.java ########## @@ -34,11 +34,11 @@ private final RegistryCenterRepository repository; private final OrchestrationInstance instance; - - public RegistryCenter(final String name, final RegistryCenterRepository registryCenterRepository) { + + public RegistryCenter(final String name, final int port, final RegistryCenterRepository registryCenterRepository) { Review comment: Same as above. ########## File path: shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-registrycenter/src/main/java/org/apache/shardingsphere/orchestration/core/registrycenter/listener/RegistryListenerManager.java ########## @@ -29,8 +29,8 @@ private final DataSourceStateChangedListener dataSourceStateChangedListener; - public RegistryListenerManager(final String name, final RegistryCenterRepository registryCenterRepository) { - instanceStateChangedListener = new InstanceStateChangedListener(name, registryCenterRepository); + public RegistryListenerManager(final String name, final int port, final RegistryCenterRepository registryCenterRepository) { Review comment: The `port` is unnecessary. ########## File path: shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-facade/src/main/java/org/apache/shardingsphere/orchestration/core/facade/ShardingOrchestrationFacade.java ########## @@ -81,7 +81,7 @@ private final ShardingOrchestrationListenerManager listenerManager; - public ShardingOrchestrationFacade(final OrchestrationConfiguration orchestrationConfig, final Collection<String> shardingSchemaNames) { + public ShardingOrchestrationFacade(final OrchestrationConfiguration orchestrationConfig, final Collection<String> shardingSchemaNames, final int identifier) { Review comment: The parameter `identifier` cannot correctly describe the meaning of orchestration instance unique identification, my suggestion is `instanceId`, and i think it's better to define it as `String` type. ########## File path: shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-registrycenter/src/main/java/org/apache/shardingsphere/orchestration/core/registrycenter/instance/OrchestrationInstance.java ########## @@ -29,21 +28,30 @@ public final class OrchestrationInstance { private static final String DELIMITER = "@"; - - private static final OrchestrationInstance INSTANCE = new OrchestrationInstance(); + + private static OrchestrationInstance instance; private final String instanceId; - - private OrchestrationInstance() { - instanceId = IpUtils.getIp() + DELIMITER + ManagementFactory.getRuntimeMXBean().getName().split(DELIMITER)[0] + DELIMITER + UUID.randomUUID().toString(); + + public OrchestrationInstance(final int identifier) { + instanceId = IpUtils.getIp() + DELIMITER + identifier + DELIMITER + UUID.randomUUID().toString(); Review comment: How about add `instance = this;` ########## File path: shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-registrycenter/src/main/java/org/apache/shardingsphere/orchestration/core/registrycenter/RegistryCenter.java ########## @@ -34,11 +34,11 @@ private final RegistryCenterRepository repository; private final OrchestrationInstance instance; - - public RegistryCenter(final String name, final RegistryCenterRepository registryCenterRepository) { + + public RegistryCenter(final String name, final int port, final RegistryCenterRepository registryCenterRepository) { this.node = new RegistryCenterNode(name); this.repository = registryCenterRepository; - this.instance = OrchestrationInstance.getInstance(); + this.instance = OrchestrationInstance.getInstance(port); Review comment: `this.instance = new OrchestrationInstance(port);` ########## File path: shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-registrycenter/src/main/java/org/apache/shardingsphere/orchestration/core/registrycenter/listener/InstanceStateChangedListener.java ########## @@ -35,8 +35,8 @@ */ public final class InstanceStateChangedListener extends PostShardingCenterRepositoryEventListener { - public InstanceStateChangedListener(final String name, final RegistryCenterRepository registryCenterRepository) { - super(registryCenterRepository, Collections.singleton(new RegistryCenterNode(name).getInstancesNodeFullPath(OrchestrationInstance.getInstance().getInstanceId()))); + public InstanceStateChangedListener(final String name, final int port, final RegistryCenterRepository registryCenterRepository) { Review comment: The `port` is unnecessary. ########## File path: shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-registrycenter/src/main/java/org/apache/shardingsphere/orchestration/core/registrycenter/listener/InstanceStateChangedListener.java ########## @@ -35,8 +35,8 @@ */ public final class InstanceStateChangedListener extends PostShardingCenterRepositoryEventListener { - public InstanceStateChangedListener(final String name, final RegistryCenterRepository registryCenterRepository) { - super(registryCenterRepository, Collections.singleton(new RegistryCenterNode(name).getInstancesNodeFullPath(OrchestrationInstance.getInstance().getInstanceId()))); + public InstanceStateChangedListener(final String name, final int port, final RegistryCenterRepository registryCenterRepository) { + super(registryCenterRepository, Collections.singleton(new RegistryCenterNode(name).getInstancesNodeFullPath(OrchestrationInstance.getInstance(port).getInstanceId()))); Review comment: `OrchestrationInstance.getInstance().getInstanceId()` ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org