This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
The following commit(s) were added to refs/heads/master by this push:
new 0668f6308 Submit a feature that applies graceful up and down (#4670)
0668f6308 is described below
commit 0668f6308dfcd20a0fd17798206b8fe021b18ceb
Author: chenshouye168 <[email protected]>
AuthorDate: Mon Jan 13 09:41:30 2025 +0800
Submit a feature that applies graceful up and down (#4670)
---
.../org/apache/servicecomb/core/SCBEngine.java | 2 -
.../servicecomb/registry/DiscoveryManager.java | 2 +-
.../registry/api/MicroserviceInstance.java | 6 +++
.../registry/api/RegistrationInstance.java | 11 -----
.../discovery/InstanceStatusDiscoveryFilter.java | 6 +--
.../discovery/StatefulDiscoveryInstance.java | 11 -----
.../TestInstanceStatusDiscoveryFilter.java | 8 ++--
.../src/test/resources/log4j2.xml | 20 ++++----
service-registry/registry-consul/pom.xml | 4 +-
.../registry/consul/ConsulConfiguration.java | 4 +-
.../registry/consul/ConsulDiscovery.java | 5 +-
.../registry/consul/ConsulDiscoveryInstance.java | 22 ++++-----
.../registry/consul/ConsulInstance.java | 8 +++-
.../registry/consul/ConsulRegistration.java | 2 +
.../consul/ConsulRegistrationInstance.java | 12 +----
.../registry/consul/config/ConsulProperties.java | 1 +
.../servicecomb/registry/etcd/EtcdInstance.java | 8 +++-
.../registry/etcd/EtcdRegistrationInstance.java | 11 -----
.../localregistry/LocalRegistrationInstance.java | 7 +--
service-registry/registry-nacos/pom.xml | 56 +++++++++++-----------
.../servicecomb/registry/nacos/NacosConst.java | 2 +
.../servicecomb/registry/nacos/NacosDiscovery.java | 1 +
.../registry/nacos/NacosDiscoveryInstance.java | 10 +++-
.../registry/nacos/NacosRegistration.java | 15 ++++--
.../registry/nacos/NacosRegistrationInstance.java | 9 +---
.../registry/sc/MicroserviceHandler.java | 3 +-
.../registry/sc/SCConfigurationProperties.java | 10 ----
.../registry/sc/SCDiscoveryInstance.java | 9 ++--
.../servicecomb/registry/sc/SCRegistration.java | 1 -
.../registry/sc/SCRegistrationInstance.java | 10 +---
.../zeroconfig/ZeroConfigRegistrationInstance.java | 7 +--
.../zookeeper/ZookeeperDiscoveryInstance.java | 6 ---
.../registry/zookeeper/ZookeeperInstance.java | 15 +++++-
.../registry/zookeeper/ZookeeperRegistration.java | 14 +++++-
.../zookeeper/ZookeeperRegistrationInstance.java | 11 -----
35 files changed, 153 insertions(+), 176 deletions(-)
diff --git a/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
b/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
index 2d8b86818..c69521698 100644
--- a/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
+++ b/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
@@ -370,8 +370,6 @@ public class SCBEngine {
triggerEvent(EventType.BEFORE_REGISTRY);
registrationManager.run();
discoveryManager.run();
- // ensure can invoke services in AFTER_REGISTRY
-
registrationManager.updateMicroserviceInstanceStatus(MicroserviceInstanceStatus.UP);
status = SCBStatus.UP;
triggerEvent(EventType.AFTER_REGISTRY);
diff --git
a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/DiscoveryManager.java
b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/DiscoveryManager.java
index 2cbe83a24..edcd3b3ca 100644
---
a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/DiscoveryManager.java
+++
b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/DiscoveryManager.java
@@ -183,7 +183,7 @@ public class DiscoveryManager implements LifeCycle {
continue;
}
if (instance.getHistoryStatus() == HistoryStatus.HISTORY
- && instance.getMicroserviceInstanceStatus() ==
MicroserviceInstanceStatus.UP
+ && instance.getStatus() == MicroserviceInstanceStatus.UP
&& instance.getPingStatus() == PingStatus.OK
&& instance.getIsolationStatus() == IsolationStatus.NORMAL) {
result.add(instance);
diff --git
a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/MicroserviceInstance.java
b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/MicroserviceInstance.java
index 0dd6d0237..c5c872bee 100644
---
a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/MicroserviceInstance.java
+++
b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/MicroserviceInstance.java
@@ -93,4 +93,10 @@ public interface MicroserviceInstance {
default String getServiceId() {
return "";
}
+
+ /**
+ * Service status(Required): status of this microservice.
+ *
+ */
+ MicroserviceInstanceStatus getStatus();
}
diff --git
a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/RegistrationInstance.java
b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/RegistrationInstance.java
index afe2bc7a8..a7d7cafda 100644
---
a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/RegistrationInstance.java
+++
b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/RegistrationInstance.java
@@ -20,15 +20,4 @@ package org.apache.servicecomb.registry.api;
* Microserivce instance registration object.
*/
public interface RegistrationInstance extends MicroserviceInstance {
- /**
- * Initial status when registering(Optional). This method is
- * implementation specific and may be not used.
- */
- MicroserviceInstanceStatus getInitialStatus();
-
- /**
- * Ready status when microservice instance is ready for
service(Optional).This method is
- * implementation specific and may be not used.
- */
- MicroserviceInstanceStatus getReadyStatus();
}
diff --git
a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/InstanceStatusDiscoveryFilter.java
b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/InstanceStatusDiscoveryFilter.java
index ef60b4a3e..dd27dc973 100644
---
a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/InstanceStatusDiscoveryFilter.java
+++
b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/InstanceStatusDiscoveryFilter.java
@@ -69,21 +69,21 @@ public class InstanceStatusDiscoveryFilter extends
AbstractGroupDiscoveryFilter
for (StatefulDiscoveryInstance instance : instances) {
if (HistoryStatus.CURRENT == instance.getHistoryStatus() &&
- MicroserviceInstanceStatus.UP ==
instance.getMicroserviceInstanceStatus() &&
+ MicroserviceInstanceStatus.UP == instance.getStatus() &&
PingStatus.OK == instance.getPingStatus() &&
IsolationStatus.NORMAL == instance.getIsolationStatus()) {
level0.add(instance);
continue;
}
if (HistoryStatus.CURRENT == instance.getHistoryStatus() &&
- MicroserviceInstanceStatus.UP ==
instance.getMicroserviceInstanceStatus() &&
+ MicroserviceInstanceStatus.UP == instance.getStatus() &&
PingStatus.UNKNOWN == instance.getPingStatus() &&
IsolationStatus.NORMAL == instance.getIsolationStatus()) {
level1.add(instance);
continue;
}
if (HistoryStatus.HISTORY == instance.getHistoryStatus() &&
- MicroserviceInstanceStatus.UP ==
instance.getMicroserviceInstanceStatus() &&
+ MicroserviceInstanceStatus.UP == instance.getStatus() &&
PingStatus.OK == instance.getPingStatus() &&
IsolationStatus.NORMAL == instance.getIsolationStatus()) {
level2.add(instance);
diff --git
a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/StatefulDiscoveryInstance.java
b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/StatefulDiscoveryInstance.java
index f06ea936d..394b2b03c 100644
---
a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/StatefulDiscoveryInstance.java
+++
b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/StatefulDiscoveryInstance.java
@@ -46,8 +46,6 @@ public class StatefulDiscoveryInstance extends
AbstractDiscoveryInstance {
private final DiscoveryInstance discoveryInstance;
- private MicroserviceInstanceStatus microserviceInstanceStatus =
MicroserviceInstanceStatus.UP;
-
private IsolationStatus isolationStatus = IsolationStatus.NORMAL;
private long isolatedTime;
@@ -64,15 +62,6 @@ public class StatefulDiscoveryInstance extends
AbstractDiscoveryInstance {
this.discoveryInstance = discoveryInstance;
}
- public MicroserviceInstanceStatus getMicroserviceInstanceStatus() {
- return microserviceInstanceStatus;
- }
-
- public void setMicroserviceInstanceStatus(
- MicroserviceInstanceStatus microserviceInstanceStatus) {
- this.microserviceInstanceStatus = microserviceInstanceStatus;
- }
-
public IsolationStatus getIsolationStatus() {
return isolationStatus;
}
diff --git
a/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/discovery/TestInstanceStatusDiscoveryFilter.java
b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/discovery/TestInstanceStatusDiscoveryFilter.java
index eeecc4200..8e7307098 100644
---
a/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/discovery/TestInstanceStatusDiscoveryFilter.java
+++
b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/discovery/TestInstanceStatusDiscoveryFilter.java
@@ -36,22 +36,22 @@ public class TestInstanceStatusDiscoveryFilter {
List<StatefulDiscoveryInstance> instances = new ArrayList<>();
StatefulDiscoveryInstance instance1 =
Mockito.mock(StatefulDiscoveryInstance.class);
Mockito.when(instance1.getHistoryStatus()).thenReturn(HistoryStatus.CURRENT);
-
Mockito.when(instance1.getMicroserviceInstanceStatus()).thenReturn(MicroserviceInstanceStatus.UP);
+
Mockito.when(instance1.getStatus()).thenReturn(MicroserviceInstanceStatus.UP);
Mockito.when(instance1.getPingStatus()).thenReturn(PingStatus.OK);
Mockito.when(instance1.getIsolationStatus()).thenReturn(IsolationStatus.NORMAL);
StatefulDiscoveryInstance instance2 =
Mockito.mock(StatefulDiscoveryInstance.class);
Mockito.when(instance2.getHistoryStatus()).thenReturn(HistoryStatus.CURRENT);
-
Mockito.when(instance2.getMicroserviceInstanceStatus()).thenReturn(MicroserviceInstanceStatus.UP);
+
Mockito.when(instance2.getStatus()).thenReturn(MicroserviceInstanceStatus.UP);
Mockito.when(instance2.getPingStatus()).thenReturn(PingStatus.UNKNOWN);
Mockito.when(instance2.getIsolationStatus()).thenReturn(IsolationStatus.NORMAL);
StatefulDiscoveryInstance instance3 =
Mockito.mock(StatefulDiscoveryInstance.class);
Mockito.when(instance3.getHistoryStatus()).thenReturn(HistoryStatus.HISTORY);
-
Mockito.when(instance3.getMicroserviceInstanceStatus()).thenReturn(MicroserviceInstanceStatus.UP);
+
Mockito.when(instance3.getStatus()).thenReturn(MicroserviceInstanceStatus.UP);
Mockito.when(instance3.getPingStatus()).thenReturn(PingStatus.OK);
Mockito.when(instance3.getIsolationStatus()).thenReturn(IsolationStatus.NORMAL);
StatefulDiscoveryInstance instance4 =
Mockito.mock(StatefulDiscoveryInstance.class);
Mockito.when(instance4.getHistoryStatus()).thenReturn(HistoryStatus.CURRENT);
-
Mockito.when(instance4.getMicroserviceInstanceStatus()).thenReturn(MicroserviceInstanceStatus.UP);
+
Mockito.when(instance4.getStatus()).thenReturn(MicroserviceInstanceStatus.UP);
Mockito.when(instance4.getPingStatus()).thenReturn(PingStatus.FAIL);
Mockito.when(instance4.getIsolationStatus()).thenReturn(IsolationStatus.NORMAL);
instances.addAll(Arrays.asList(instance1, instance2, instance3,
instance4));
diff --git a/foundations/foundation-registry/src/test/resources/log4j2.xml
b/foundations/foundation-registry/src/test/resources/log4j2.xml
index 8cee07220..3125ebd11 100644
--- a/foundations/foundation-registry/src/test/resources/log4j2.xml
+++ b/foundations/foundation-registry/src/test/resources/log4j2.xml
@@ -16,14 +16,14 @@
under the License.
-->
<Configuration status="INFO">
- <Appenders>
- <Console name="Console" target="SYSTEM_OUT">
- <PatternLayout pattern="[%d][%t][%p][%c:%L] %m%n" />
- </Console>
- </Appenders>
- <Loggers>
- <Root level="INFO">
- <AppenderRef ref="Console" />
- </Root>
- </Loggers>
+ <Appenders>
+ <Console name="Console" target="SYSTEM_OUT">
+ <PatternLayout pattern="[%d][%t][%p][%c:%L] %m%n"/>
+ </Console>
+ </Appenders>
+ <Loggers>
+ <Root level="INFO">
+ <AppenderRef ref="Console"/>
+ </Root>
+ </Loggers>
</Configuration>
diff --git a/service-registry/registry-consul/pom.xml
b/service-registry/registry-consul/pom.xml
index fe1806e62..58399a146 100644
--- a/service-registry/registry-consul/pom.xml
+++ b/service-registry/registry-consul/pom.xml
@@ -17,8 +17,8 @@
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.servicecomb</groupId>
diff --git
a/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulConfiguration.java
b/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulConfiguration.java
index e088bcfd5..36422f0f1 100644
---
a/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulConfiguration.java
+++
b/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulConfiguration.java
@@ -18,6 +18,7 @@
package org.apache.servicecomb.registry.consul;
import com.google.common.net.HostAndPort;
+
import org.apache.commons.lang3.StringUtils;
import org.apache.servicecomb.config.DataCenterProperties;
import org.apache.servicecomb.registry.RegistrationId;
@@ -54,7 +55,8 @@ public class ConsulConfiguration {
@ConditionalOnBean(value = {ConsulProperties.class,
ConsulDiscoveryProperties.class})
@ConditionalOnMissingBean
public Consul consulClient(ConsulProperties consulProperties,
ConsulDiscoveryProperties consulDiscoveryProperties) {
- Consul.Builder builder =
Consul.builder().withHostAndPort(HostAndPort.fromParts(consulProperties.getHost(),
consulProperties.getPort()));
+ Consul.Builder builder = Consul.builder()
+ .withHostAndPort(HostAndPort.fromParts(consulProperties.getHost(),
consulProperties.getPort()));
if (StringUtils.isNotBlank(consulDiscoveryProperties.getAclToken())) {
builder.withAclToken(consulDiscoveryProperties.getAclToken());
}
diff --git
a/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulDiscovery.java
b/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulDiscovery.java
index c8229ad9c..ce16ccc47 100644
---
a/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulDiscovery.java
+++
b/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulDiscovery.java
@@ -20,8 +20,10 @@ package org.apache.servicecomb.registry.consul;
import com.google.common.collect.Lists;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
+
import jakarta.annotation.Resource;
import jakarta.validation.constraints.NotNull;
+
import org.apache.servicecomb.config.BootStrapProperties;
import org.apache.servicecomb.registry.api.Discovery;
import org.apache.servicecomb.registry.consul.config.ConsulDiscoveryProperties;
@@ -111,7 +113,8 @@ public class ConsulDiscovery implements
Discovery<ConsulDiscoveryInstance> {
LOGGER.info("ConsulDiscovery run");
String serviceName = BootStrapProperties.readServiceName(environment);
HealthClient healthClient = consulClient.healthClient();
- svHealth = ServiceHealthCache.newCache(healthClient, serviceName, true,
Options.BLANK_QUERY_OPTIONS, consulDiscoveryProperties.getWatchSeconds());
+ svHealth = ServiceHealthCache.newCache(healthClient, serviceName, true,
Options.BLANK_QUERY_OPTIONS,
+ consulDiscoveryProperties.getWatchSeconds());
svHealth.addListener((Map<ServiceHealthKey, ServiceHealth> newValues) ->
instanceChangedListener.onInstanceChanged(
name(), BootStrapProperties.readApplication(environment), serviceName,
getInstances(serviceName)));
svHealth.start();
diff --git
a/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulDiscoveryInstance.java
b/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulDiscoveryInstance.java
index 272219285..de3bf9bc2 100644
---
a/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulDiscoveryInstance.java
+++
b/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulDiscoveryInstance.java
@@ -22,17 +22,17 @@ import
org.apache.servicecomb.registry.api.MicroserviceInstanceStatus;
public class ConsulDiscoveryInstance extends ConsulInstance implements
DiscoveryInstance {
- public ConsulDiscoveryInstance(ConsulInstance consulInstance) {
- super(consulInstance);
- }
+ public ConsulDiscoveryInstance(ConsulInstance consulInstance) {
+ super(consulInstance);
+ }
- @Override
- public MicroserviceInstanceStatus getStatus() {
- return MicroserviceInstanceStatus.UP;
- }
+ @Override
+ public MicroserviceInstanceStatus getStatus() {
+ return MicroserviceInstanceStatus.UP;
+ }
- @Override
- public String getRegistryName() {
- return ConsulConst.CONSUL_REGISTRY_NAME;
- }
+ @Override
+ public String getRegistryName() {
+ return ConsulConst.CONSUL_REGISTRY_NAME;
+ }
}
diff --git
a/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulInstance.java
b/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulInstance.java
index 03ef5710b..b29f80e77 100644
---
a/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulInstance.java
+++
b/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulInstance.java
@@ -19,6 +19,7 @@ package org.apache.servicecomb.registry.consul;
import org.apache.servicecomb.registry.api.DataCenterInfo;
import org.apache.servicecomb.registry.api.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.MicroserviceInstanceStatus;
import java.util.ArrayList;
import java.util.HashMap;
@@ -144,7 +145,7 @@ public class ConsulInstance implements MicroserviceInstance
{
@Override
public DataCenterInfo getDataCenterInfo() {
- return dataCenterInfo;
+ return dataCenterInfo == null ? new DataCenterInfo() : dataCenterInfo;
}
@Override
@@ -188,4 +189,9 @@ public class ConsulInstance implements MicroserviceInstance
{
public String getServiceId() {
return serviceId;
}
+
+ @Override
+ public MicroserviceInstanceStatus getStatus() {
+ return MicroserviceInstanceStatus.UP;
+ }
}
diff --git
a/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulRegistration.java
b/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulRegistration.java
index 0399face8..122ee5ade 100644
---
a/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulRegistration.java
+++
b/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulRegistration.java
@@ -19,7 +19,9 @@ package org.apache.servicecomb.registry.consul;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
+
import jakarta.annotation.Resource;
+
import org.apache.commons.lang3.StringUtils;
import org.apache.servicecomb.config.BootStrapProperties;
import org.apache.servicecomb.config.DataCenterProperties;
diff --git
a/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulRegistrationInstance.java
b/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulRegistrationInstance.java
index d06ca7e6a..dc0b83eae 100644
---
a/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulRegistrationInstance.java
+++
b/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulRegistrationInstance.java
@@ -17,7 +17,7 @@
package org.apache.servicecomb.registry.consul;
-import org.apache.servicecomb.registry.api.MicroserviceInstanceStatus;
+
import org.apache.servicecomb.registry.api.RegistrationInstance;
public class ConsulRegistrationInstance extends ConsulInstance implements
RegistrationInstance {
@@ -25,14 +25,4 @@ public class ConsulRegistrationInstance extends
ConsulInstance implements Regist
public ConsulRegistrationInstance(ConsulInstance instance) {
super(instance);
}
-
- @Override
- public MicroserviceInstanceStatus getInitialStatus() {
- return MicroserviceInstanceStatus.STARTING;
- }
-
- @Override
- public MicroserviceInstanceStatus getReadyStatus() {
- return MicroserviceInstanceStatus.UP;
- }
}
diff --git
a/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/config/ConsulProperties.java
b/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/config/ConsulProperties.java
index c594a76fc..bb04a7583 100644
---
a/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/config/ConsulProperties.java
+++
b/service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/config/ConsulProperties.java
@@ -18,6 +18,7 @@
package org.apache.servicecomb.registry.consul.config;
import jakarta.validation.constraints.NotNull;
+
import org.springframework.validation.annotation.Validated;
diff --git
a/service-registry/registry-etcd/src/main/java/org/apache/servicecomb/registry/etcd/EtcdInstance.java
b/service-registry/registry-etcd/src/main/java/org/apache/servicecomb/registry/etcd/EtcdInstance.java
index 19fbd8cad..99ab793ff 100644
---
a/service-registry/registry-etcd/src/main/java/org/apache/servicecomb/registry/etcd/EtcdInstance.java
+++
b/service-registry/registry-etcd/src/main/java/org/apache/servicecomb/registry/etcd/EtcdInstance.java
@@ -23,6 +23,7 @@ import java.util.Map;
import org.apache.servicecomb.registry.api.DataCenterInfo;
import org.apache.servicecomb.registry.api.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.MicroserviceInstanceStatus;
public class EtcdInstance implements MicroserviceInstance {
private String serviceId;
@@ -143,7 +144,7 @@ public class EtcdInstance implements MicroserviceInstance {
@Override
public DataCenterInfo getDataCenterInfo() {
- return dataCenterInfo;
+ return dataCenterInfo == null ? new DataCenterInfo() : dataCenterInfo;
}
@Override
@@ -188,6 +189,11 @@ public class EtcdInstance implements MicroserviceInstance {
return serviceId;
}
+ @Override
+ public MicroserviceInstanceStatus getStatus() {
+ return MicroserviceInstanceStatus.UP;
+ }
+
@Override
public String toString() {
return "EtcdInstance{" +
diff --git
a/service-registry/registry-etcd/src/main/java/org/apache/servicecomb/registry/etcd/EtcdRegistrationInstance.java
b/service-registry/registry-etcd/src/main/java/org/apache/servicecomb/registry/etcd/EtcdRegistrationInstance.java
index 444fe8670..3dfa78c33 100644
---
a/service-registry/registry-etcd/src/main/java/org/apache/servicecomb/registry/etcd/EtcdRegistrationInstance.java
+++
b/service-registry/registry-etcd/src/main/java/org/apache/servicecomb/registry/etcd/EtcdRegistrationInstance.java
@@ -16,21 +16,10 @@
*/
package org.apache.servicecomb.registry.etcd;
-import org.apache.servicecomb.registry.api.MicroserviceInstanceStatus;
import org.apache.servicecomb.registry.api.RegistrationInstance;
public class EtcdRegistrationInstance extends EtcdInstance implements
RegistrationInstance {
public EtcdRegistrationInstance(EtcdInstance instance) {
super(instance);
}
-
- @Override
- public MicroserviceInstanceStatus getInitialStatus() {
- return MicroserviceInstanceStatus.STARTING;
- }
-
- @Override
- public MicroserviceInstanceStatus getReadyStatus() {
- return MicroserviceInstanceStatus.UP;
- }
}
diff --git
a/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/LocalRegistrationInstance.java
b/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/LocalRegistrationInstance.java
index 2262beab4..e07527636 100644
---
a/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/LocalRegistrationInstance.java
+++
b/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/LocalRegistrationInstance.java
@@ -119,12 +119,7 @@ public class LocalRegistrationInstance implements
RegistrationInstance {
}
@Override
- public MicroserviceInstanceStatus getInitialStatus() {
- return MicroserviceInstanceStatus.STARTING;
- }
-
- @Override
- public MicroserviceInstanceStatus getReadyStatus() {
+ public MicroserviceInstanceStatus getStatus() {
return MicroserviceInstanceStatus.UP;
}
diff --git a/service-registry/registry-nacos/pom.xml
b/service-registry/registry-nacos/pom.xml
index eb1a4b5d9..97b866735 100644
--- a/service-registry/registry-nacos/pom.xml
+++ b/service-registry/registry-nacos/pom.xml
@@ -17,35 +17,35 @@
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <parent>
- <groupId>org.apache.servicecomb</groupId>
- <artifactId>service-registry-parent</artifactId>
- <version>3.3.0-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <groupId>org.apache.servicecomb</groupId>
+ <artifactId>service-registry-parent</artifactId>
+ <version>3.3.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
- <artifactId>registry-nacos</artifactId>
- <name>Java Chassis::Service Registry::Nacos</name>
+ <artifactId>registry-nacos</artifactId>
+ <name>Java Chassis::Service Registry::Nacos</name>
- <dependencies>
- <dependency>
- <groupId>com.alibaba.nacos</groupId>
- <artifactId>nacos-client</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.servicecomb</groupId>
- <artifactId>foundation-common</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.servicecomb</groupId>
- <artifactId>foundation-registry</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.servicecomb</groupId>
- <artifactId>java-chassis-core</artifactId>
- </dependency>
- </dependencies>
+ <dependencies>
+ <dependency>
+ <groupId>com.alibaba.nacos</groupId>
+ <artifactId>nacos-client</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.servicecomb</groupId>
+ <artifactId>foundation-common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.servicecomb</groupId>
+ <artifactId>foundation-registry</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.servicecomb</groupId>
+ <artifactId>java-chassis-core</artifactId>
+ </dependency>
+ </dependencies>
</project>
diff --git
a/service-registry/registry-nacos/src/main/java/org/apache/servicecomb/registry/nacos/NacosConst.java
b/service-registry/registry-nacos/src/main/java/org/apache/servicecomb/registry/nacos/NacosConst.java
index b3a7a5dab..563d17260 100644
---
a/service-registry/registry-nacos/src/main/java/org/apache/servicecomb/registry/nacos/NacosConst.java
+++
b/service-registry/registry-nacos/src/main/java/org/apache/servicecomb/registry/nacos/NacosConst.java
@@ -57,4 +57,6 @@ public class NacosConst {
public static final String NAMING_LOAD_CACHE_AT_START =
"namingLoadCacheAtStart";
public static final String NACOS_REGISTRY_NAME = "nacos-registry";
+
+ public static final String NACOS_STATUS = "nacos-status";
}
diff --git
a/service-registry/registry-nacos/src/main/java/org/apache/servicecomb/registry/nacos/NacosDiscovery.java
b/service-registry/registry-nacos/src/main/java/org/apache/servicecomb/registry/nacos/NacosDiscovery.java
index bd41ad539..dfe2a5739 100644
---
a/service-registry/registry-nacos/src/main/java/org/apache/servicecomb/registry/nacos/NacosDiscovery.java
+++
b/service-registry/registry-nacos/src/main/java/org/apache/servicecomb/registry/nacos/NacosDiscovery.java
@@ -25,6 +25,7 @@ import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
import com.alibaba.nacos.api.exception.NacosException;
+
import org.apache.servicecomb.registry.api.Discovery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
diff --git
a/service-registry/registry-nacos/src/main/java/org/apache/servicecomb/registry/nacos/NacosDiscoveryInstance.java
b/service-registry/registry-nacos/src/main/java/org/apache/servicecomb/registry/nacos/NacosDiscoveryInstance.java
index 93c8369a6..6360d0120 100644
---
a/service-registry/registry-nacos/src/main/java/org/apache/servicecomb/registry/nacos/NacosDiscoveryInstance.java
+++
b/service-registry/registry-nacos/src/main/java/org/apache/servicecomb/registry/nacos/NacosDiscoveryInstance.java
@@ -57,7 +57,15 @@ public class NacosDiscoveryInstance extends
AbstractDiscoveryInstance {
@Override
public MicroserviceInstanceStatus getStatus() {
- return instance.isEnabled() ? MicroserviceInstanceStatus.UP :
MicroserviceInstanceStatus.DOWN;
+ if (instance.isEnabled()) {
+ String instanceStatus =
instance.getMetadata().get(NacosConst.NACOS_STATUS);
+ if (StringUtils.isBlank(instanceStatus)) {
+ return MicroserviceInstanceStatus.UP;
+ }
+ return MicroserviceInstanceStatus.valueOf(instanceStatus);
+ } else {
+ return MicroserviceInstanceStatus.DOWN;
+ }
}
@Override
diff --git
a/service-registry/registry-nacos/src/main/java/org/apache/servicecomb/registry/nacos/NacosRegistration.java
b/service-registry/registry-nacos/src/main/java/org/apache/servicecomb/registry/nacos/NacosRegistration.java
index c11afaec7..96f41d067 100644
---
a/service-registry/registry-nacos/src/main/java/org/apache/servicecomb/registry/nacos/NacosRegistration.java
+++
b/service-registry/registry-nacos/src/main/java/org/apache/servicecomb/registry/nacos/NacosRegistration.java
@@ -20,6 +20,7 @@ package org.apache.servicecomb.registry.nacos;
import java.util.List;
import java.util.Map;
+import org.apache.servicecomb.config.BootStrapProperties;
import org.apache.servicecomb.config.DataCenterProperties;
import org.apache.servicecomb.core.Endpoint;
import org.apache.servicecomb.core.invocation.endpoint.EndpointUtils;
@@ -65,7 +66,8 @@ public class NacosRegistration implements
Registration<NacosRegistrationInstance
environment);
instance.setInstanceId(instanceId);
nacosRegistrationInstance = new NacosRegistrationInstance(instance,
environment);
-
+ instance.getMetadata()
+ .put(NacosConst.NACOS_STATUS,
BootStrapProperties.readServiceInstanceInitialStatus(environment));
namingService = NamingServiceManager.buildNamingService(environment,
nacosDiscoveryProperties);
}
@@ -132,9 +134,14 @@ public class NacosRegistration implements
Registration<NacosRegistrationInstance
@Override
public boolean updateMicroserviceInstanceStatus(MicroserviceInstanceStatus
status) {
- // Do not support Nacos update status now. Because update status will fail
- // due to some unknown reasons(Maybe different constrains in register and
maintain api).
- return true;
+ try {
+ instance.getMetadata().put(NacosConst.NACOS_STATUS, status.name());
+
namingService.registerInstance(nacosRegistrationInstance.getServiceName(),
+ nacosRegistrationInstance.getApplication(), instance);
+ return true;
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
}
@Override
diff --git
a/service-registry/registry-nacos/src/main/java/org/apache/servicecomb/registry/nacos/NacosRegistrationInstance.java
b/service-registry/registry-nacos/src/main/java/org/apache/servicecomb/registry/nacos/NacosRegistrationInstance.java
index 653ce3d89..7a99f1b2d 100644
---
a/service-registry/registry-nacos/src/main/java/org/apache/servicecomb/registry/nacos/NacosRegistrationInstance.java
+++
b/service-registry/registry-nacos/src/main/java/org/apache/servicecomb/registry/nacos/NacosRegistrationInstance.java
@@ -104,13 +104,8 @@ public class NacosRegistrationInstance implements
RegistrationInstance {
}
@Override
- public MicroserviceInstanceStatus getInitialStatus() {
- return MicroserviceInstanceStatus.STARTING;
- }
-
- @Override
- public MicroserviceInstanceStatus getReadyStatus() {
- return MicroserviceInstanceStatus.UP;
+ public MicroserviceInstanceStatus getStatus() {
+ return
MicroserviceInstanceStatus.valueOf(instance.getMetadata().get(NacosConst.NACOS_STATUS));
}
public void addSchema(String schemaId, String content) {
diff --git
a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/MicroserviceHandler.java
b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/MicroserviceHandler.java
index 7ff1ec74d..7ffa409a0 100644
---
a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/MicroserviceHandler.java
+++
b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/MicroserviceHandler.java
@@ -142,7 +142,8 @@ public class MicroserviceHandler {
properties.putAll(BootStrapProperties.readServiceProperties(environment));
properties.putAll(genCasProperties(environment));
microserviceInstance.setProperties(properties);
-
microserviceInstance.setStatus(MicroserviceInstanceStatus.valueOf(scConfigurationProperties.getInitialStatus()));
+ microserviceInstance.setStatus(
+
MicroserviceInstanceStatus.valueOf(BootStrapProperties.readServiceInstanceInitialStatus(environment)));
return microserviceInstance;
}
diff --git
a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/SCConfigurationProperties.java
b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/SCConfigurationProperties.java
index 784f711cf..5ac431406 100644
---
a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/SCConfigurationProperties.java
+++
b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/SCConfigurationProperties.java
@@ -49,8 +49,6 @@ public class SCConfigurationProperties {
private boolean autoDiscovery = false;
- private String initialStatus = "STARTING";
-
private boolean watch = false;
private long registrationWaitTimeInMillis = 30000;
@@ -140,14 +138,6 @@ public class SCConfigurationProperties {
this.healthCheckTimes = healthCheckTimes;
}
- public String getInitialStatus() {
- return initialStatus;
- }
-
- public void setInitialStatus(String initialStatus) {
- this.initialStatus = initialStatus;
- }
-
public boolean isWatch() {
return watch;
}
diff --git
a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/SCDiscoveryInstance.java
b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/SCDiscoveryInstance.java
index 28ef4e37b..f3b7ffe44 100644
---
a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/SCDiscoveryInstance.java
+++
b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/SCDiscoveryInstance.java
@@ -76,9 +76,12 @@ public class SCDiscoveryInstance extends
AbstractDiscoveryInstance {
@Override
public DataCenterInfo getDataCenterInfo() {
- return new
DataCenterInfo(microserviceInstance.getDataCenterInfo().getName(),
- microserviceInstance.getDataCenterInfo().getRegion(),
- microserviceInstance.getDataCenterInfo().getAvailableZone());
+ if (microserviceInstance.getDataCenterInfo() != null) {
+ return new
DataCenterInfo(microserviceInstance.getDataCenterInfo().getName(),
+ microserviceInstance.getDataCenterInfo().getRegion(),
+ microserviceInstance.getDataCenterInfo().getAvailableZone());
+ }
+ return new DataCenterInfo();
}
@Override
diff --git
a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/SCRegistration.java
b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/SCRegistration.java
index e37f54b67..a2a47ca5a 100644
---
a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/SCRegistration.java
+++
b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/SCRegistration.java
@@ -88,7 +88,6 @@ public class SCRegistration implements
Registration<SCRegistrationInstance> {
this.environment = environment;
}
-
@Override
public void init() {
microservice = MicroserviceHandler.createMicroservice(
diff --git
a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/SCRegistrationInstance.java
b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/SCRegistrationInstance.java
index 36416972a..cfe53692e 100644
---
a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/SCRegistrationInstance.java
+++
b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/SCRegistrationInstance.java
@@ -34,8 +34,7 @@ public class SCRegistrationInstance implements
RegistrationInstance {
private final ServiceCenterRegistration serviceCenterRegistration;
- public SCRegistrationInstance(Microservice microservice,
- MicroserviceInstance microserviceInstance,
+ public SCRegistrationInstance(Microservice microservice,
MicroserviceInstance microserviceInstance,
ServiceCenterRegistration serviceCenterRegistration) {
this.microservice = microservice;
this.microserviceInstance = microserviceInstance;
@@ -107,15 +106,10 @@ public class SCRegistrationInstance implements
RegistrationInstance {
}
@Override
- public MicroserviceInstanceStatus getInitialStatus() {
+ public MicroserviceInstanceStatus getStatus() {
return
MicroserviceInstanceStatus.valueOf(microserviceInstance.getStatus().name());
}
- @Override
- public MicroserviceInstanceStatus getReadyStatus() {
- return MicroserviceInstanceStatus.UP;
- }
-
public Microservice getBackendMicroservice() {
return microservice;
}
diff --git
a/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/ZeroConfigRegistrationInstance.java
b/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/ZeroConfigRegistrationInstance.java
index 61864c964..9e1955b24 100644
---
a/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/ZeroConfigRegistrationInstance.java
+++
b/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/ZeroConfigRegistrationInstance.java
@@ -87,12 +87,7 @@ public class ZeroConfigRegistrationInstance implements
RegistrationInstance {
}
@Override
- public MicroserviceInstanceStatus getInitialStatus() {
- return MicroserviceInstanceStatus.STARTING;
- }
-
- @Override
- public MicroserviceInstanceStatus getReadyStatus() {
+ public MicroserviceInstanceStatus getStatus() {
return MicroserviceInstanceStatus.UP;
}
diff --git
a/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperDiscoveryInstance.java
b/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperDiscoveryInstance.java
index f33b05fb7..b01ad5083 100644
---
a/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperDiscoveryInstance.java
+++
b/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperDiscoveryInstance.java
@@ -17,18 +17,12 @@
package org.apache.servicecomb.registry.zookeeper;
import org.apache.servicecomb.registry.api.DiscoveryInstance;
-import org.apache.servicecomb.registry.api.MicroserviceInstanceStatus;
public class ZookeeperDiscoveryInstance extends ZookeeperInstance implements
DiscoveryInstance {
public ZookeeperDiscoveryInstance(ZookeeperInstance other) {
super(other);
}
- @Override
- public MicroserviceInstanceStatus getStatus() {
- return MicroserviceInstanceStatus.UP;
- }
-
@Override
public String getRegistryName() {
return ZookeeperConst.ZOOKEEPER_REGISTRY_NAME;
diff --git
a/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperInstance.java
b/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperInstance.java
index 725816b24..b919d9785 100644
---
a/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperInstance.java
+++
b/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperInstance.java
@@ -23,6 +23,7 @@ import java.util.Map;
import org.apache.servicecomb.registry.api.DataCenterInfo;
import org.apache.servicecomb.registry.api.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.MicroserviceInstanceStatus;
public class ZookeeperInstance implements MicroserviceInstance {
private String serviceId;
@@ -49,6 +50,8 @@ public class ZookeeperInstance implements
MicroserviceInstance {
private Map<String, String> properties = new HashMap<>();
+ private MicroserviceInstanceStatus status;
+
public ZookeeperInstance() {
}
@@ -66,6 +69,7 @@ public class ZookeeperInstance implements
MicroserviceInstance {
this.endpoints = other.endpoints;
this.schemas = other.schemas;
this.properties = other.properties;
+ this.status = other.status;
}
public void setServiceId(String serviceId) {
@@ -116,6 +120,10 @@ public class ZookeeperInstance implements
MicroserviceInstance {
this.properties = properties;
}
+ public void setStatus(MicroserviceInstanceStatus status) {
+ this.status = status;
+ }
+
@Override
public String getEnvironment() {
return this.environment;
@@ -143,7 +151,7 @@ public class ZookeeperInstance implements
MicroserviceInstance {
@Override
public DataCenterInfo getDataCenterInfo() {
- return dataCenterInfo;
+ return dataCenterInfo == null ? new DataCenterInfo() : dataCenterInfo;
}
@Override
@@ -187,4 +195,9 @@ public class ZookeeperInstance implements
MicroserviceInstance {
public String getServiceId() {
return serviceId;
}
+
+ @Override
+ public MicroserviceInstanceStatus getStatus() {
+ return this.status;
+ }
}
diff --git
a/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperRegistration.java
b/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperRegistration.java
index c799cc047..55df0d427 100644
---
a/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperRegistration.java
+++
b/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperRegistration.java
@@ -79,6 +79,8 @@ public class ZookeeperRegistration implements
Registration<ZookeeperRegistration
private RegistrationId registrationId;
+ private ServiceDiscovery<ZookeeperInstance> dis;
+
@Autowired
@SuppressWarnings("unused")
public void setEnvironment(Environment environment) {
@@ -125,6 +127,9 @@ public class ZookeeperRegistration implements
Registration<ZookeeperRegistration
}
zookeeperInstance.setProperties(BootStrapProperties.readServiceProperties(environment));
zookeeperInstance.setVersion(BootStrapProperties.readServiceVersion(environment));
+
+ zookeeperInstance.setStatus(
+
MicroserviceInstanceStatus.valueOf(BootStrapProperties.readServiceInstanceInitialStatus(environment)));
try {
this.instance =
ServiceInstance.<ZookeeperInstance>builder().name(zookeeperInstance.getServiceName())
.id(zookeeperInstance.getInstanceId()).payload(zookeeperInstance).build();
@@ -155,7 +160,7 @@ public class ZookeeperRegistration implements
Registration<ZookeeperRegistration
client.start();
JsonInstanceSerializer<ZookeeperInstance> serializer =
new JsonInstanceSerializer<>(ZookeeperInstance.class);
- ServiceDiscovery<ZookeeperInstance> dis =
ServiceDiscoveryBuilder.builder(ZookeeperInstance.class)
+ dis = ServiceDiscoveryBuilder.builder(ZookeeperInstance.class)
.client(client)
.basePath(basePath + "/" +
BootStrapProperties.readApplication(environment))
.serializer(serializer)
@@ -187,7 +192,12 @@ public class ZookeeperRegistration implements
Registration<ZookeeperRegistration
@Override
public boolean updateMicroserviceInstanceStatus(MicroserviceInstanceStatus
status) {
- // not support yet
+ this.instance.getPayload().setStatus(status);
+ try {
+ dis.updateService(instance);
+ } catch (Exception e) {
+ throw new IllegalStateException(e);
+ }
return true;
}
diff --git
a/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperRegistrationInstance.java
b/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperRegistrationInstance.java
index 6c098705b..e5caed189 100644
---
a/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperRegistrationInstance.java
+++
b/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperRegistrationInstance.java
@@ -16,21 +16,10 @@
*/
package org.apache.servicecomb.registry.zookeeper;
-import org.apache.servicecomb.registry.api.MicroserviceInstanceStatus;
import org.apache.servicecomb.registry.api.RegistrationInstance;
public class ZookeeperRegistrationInstance extends ZookeeperInstance
implements RegistrationInstance {
public ZookeeperRegistrationInstance(ZookeeperInstance instance) {
super(instance);
}
-
- @Override
- public MicroserviceInstanceStatus getInitialStatus() {
- return MicroserviceInstanceStatus.STARTING;
- }
-
- @Override
- public MicroserviceInstanceStatus getReadyStatus() {
- return MicroserviceInstanceStatus.UP;
- }
}