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


Reply via email to