Skip to content

Commit 0668f63

Browse files
Submit a feature that applies graceful up and down (#4670)
1 parent 8cedd07 commit 0668f63

File tree

35 files changed

+153
-176
lines changed

35 files changed

+153
-176
lines changed

core/src/main/java/org/apache/servicecomb/core/SCBEngine.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -370,8 +370,6 @@ private void doRun() throws Exception {
370370
triggerEvent(EventType.BEFORE_REGISTRY);
371371
registrationManager.run();
372372
discoveryManager.run();
373-
// ensure can invoke services in AFTER_REGISTRY
374-
registrationManager.updateMicroserviceInstanceStatus(MicroserviceInstanceStatus.UP);
375373
status = SCBStatus.UP;
376374
triggerEvent(EventType.AFTER_REGISTRY);
377375

foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/DiscoveryManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ private VersionedCache calcAvailableInstance(String application, String serviceN
183183
continue;
184184
}
185185
if (instance.getHistoryStatus() == HistoryStatus.HISTORY
186-
&& instance.getMicroserviceInstanceStatus() == MicroserviceInstanceStatus.UP
186+
&& instance.getStatus() == MicroserviceInstanceStatus.UP
187187
&& instance.getPingStatus() == PingStatus.OK
188188
&& instance.getIsolationStatus() == IsolationStatus.NORMAL) {
189189
result.add(instance);

foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/MicroserviceInstance.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,4 +93,10 @@ public interface MicroserviceInstance {
9393
default String getServiceId() {
9494
return "";
9595
}
96+
97+
/**
98+
* Service status(Required): status of this microservice.
99+
*
100+
*/
101+
MicroserviceInstanceStatus getStatus();
96102
}

foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/RegistrationInstance.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,4 @@
2020
* Microserivce instance registration object.
2121
*/
2222
public interface RegistrationInstance extends MicroserviceInstance {
23-
/**
24-
* Initial status when registering(Optional). This method is
25-
* implementation specific and may be not used.
26-
*/
27-
MicroserviceInstanceStatus getInitialStatus();
28-
29-
/**
30-
* Ready status when microservice instance is ready for service(Optional).This method is
31-
* implementation specific and may be not used.
32-
*/
33-
MicroserviceInstanceStatus getReadyStatus();
3423
}

foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/InstanceStatusDiscoveryFilter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,21 +69,21 @@ public void init(DiscoveryContext context, DiscoveryTreeNode parent) {
6969

7070
for (StatefulDiscoveryInstance instance : instances) {
7171
if (HistoryStatus.CURRENT == instance.getHistoryStatus() &&
72-
MicroserviceInstanceStatus.UP == instance.getMicroserviceInstanceStatus() &&
72+
MicroserviceInstanceStatus.UP == instance.getStatus() &&
7373
PingStatus.OK == instance.getPingStatus() &&
7474
IsolationStatus.NORMAL == instance.getIsolationStatus()) {
7575
level0.add(instance);
7676
continue;
7777
}
7878
if (HistoryStatus.CURRENT == instance.getHistoryStatus() &&
79-
MicroserviceInstanceStatus.UP == instance.getMicroserviceInstanceStatus() &&
79+
MicroserviceInstanceStatus.UP == instance.getStatus() &&
8080
PingStatus.UNKNOWN == instance.getPingStatus() &&
8181
IsolationStatus.NORMAL == instance.getIsolationStatus()) {
8282
level1.add(instance);
8383
continue;
8484
}
8585
if (HistoryStatus.HISTORY == instance.getHistoryStatus() &&
86-
MicroserviceInstanceStatus.UP == instance.getMicroserviceInstanceStatus() &&
86+
MicroserviceInstanceStatus.UP == instance.getStatus() &&
8787
PingStatus.OK == instance.getPingStatus() &&
8888
IsolationStatus.NORMAL == instance.getIsolationStatus()) {
8989
level2.add(instance);

foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/StatefulDiscoveryInstance.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,6 @@ public enum HistoryStatus {
4646

4747
private final DiscoveryInstance discoveryInstance;
4848

49-
private MicroserviceInstanceStatus microserviceInstanceStatus = MicroserviceInstanceStatus.UP;
50-
5149
private IsolationStatus isolationStatus = IsolationStatus.NORMAL;
5250

5351
private long isolatedTime;
@@ -64,15 +62,6 @@ public StatefulDiscoveryInstance(DiscoveryInstance discoveryInstance) {
6462
this.discoveryInstance = discoveryInstance;
6563
}
6664

67-
public MicroserviceInstanceStatus getMicroserviceInstanceStatus() {
68-
return microserviceInstanceStatus;
69-
}
70-
71-
public void setMicroserviceInstanceStatus(
72-
MicroserviceInstanceStatus microserviceInstanceStatus) {
73-
this.microserviceInstanceStatus = microserviceInstanceStatus;
74-
}
75-
7665
public IsolationStatus getIsolationStatus() {
7766
return isolationStatus;
7867
}

foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/discovery/TestInstanceStatusDiscoveryFilter.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,22 +36,22 @@ public void test_all_group_correct_init() {
3636
List<StatefulDiscoveryInstance> instances = new ArrayList<>();
3737
StatefulDiscoveryInstance instance1 = Mockito.mock(StatefulDiscoveryInstance.class);
3838
Mockito.when(instance1.getHistoryStatus()).thenReturn(HistoryStatus.CURRENT);
39-
Mockito.when(instance1.getMicroserviceInstanceStatus()).thenReturn(MicroserviceInstanceStatus.UP);
39+
Mockito.when(instance1.getStatus()).thenReturn(MicroserviceInstanceStatus.UP);
4040
Mockito.when(instance1.getPingStatus()).thenReturn(PingStatus.OK);
4141
Mockito.when(instance1.getIsolationStatus()).thenReturn(IsolationStatus.NORMAL);
4242
StatefulDiscoveryInstance instance2 = Mockito.mock(StatefulDiscoveryInstance.class);
4343
Mockito.when(instance2.getHistoryStatus()).thenReturn(HistoryStatus.CURRENT);
44-
Mockito.when(instance2.getMicroserviceInstanceStatus()).thenReturn(MicroserviceInstanceStatus.UP);
44+
Mockito.when(instance2.getStatus()).thenReturn(MicroserviceInstanceStatus.UP);
4545
Mockito.when(instance2.getPingStatus()).thenReturn(PingStatus.UNKNOWN);
4646
Mockito.when(instance2.getIsolationStatus()).thenReturn(IsolationStatus.NORMAL);
4747
StatefulDiscoveryInstance instance3 = Mockito.mock(StatefulDiscoveryInstance.class);
4848
Mockito.when(instance3.getHistoryStatus()).thenReturn(HistoryStatus.HISTORY);
49-
Mockito.when(instance3.getMicroserviceInstanceStatus()).thenReturn(MicroserviceInstanceStatus.UP);
49+
Mockito.when(instance3.getStatus()).thenReturn(MicroserviceInstanceStatus.UP);
5050
Mockito.when(instance3.getPingStatus()).thenReturn(PingStatus.OK);
5151
Mockito.when(instance3.getIsolationStatus()).thenReturn(IsolationStatus.NORMAL);
5252
StatefulDiscoveryInstance instance4 = Mockito.mock(StatefulDiscoveryInstance.class);
5353
Mockito.when(instance4.getHistoryStatus()).thenReturn(HistoryStatus.CURRENT);
54-
Mockito.when(instance4.getMicroserviceInstanceStatus()).thenReturn(MicroserviceInstanceStatus.UP);
54+
Mockito.when(instance4.getStatus()).thenReturn(MicroserviceInstanceStatus.UP);
5555
Mockito.when(instance4.getPingStatus()).thenReturn(PingStatus.FAIL);
5656
Mockito.when(instance4.getIsolationStatus()).thenReturn(IsolationStatus.NORMAL);
5757
instances.addAll(Arrays.asList(instance1, instance2, instance3, instance4));

foundations/foundation-registry/src/test/resources/log4j2.xml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@
1616
under the License.
1717
-->
1818
<Configuration status="INFO">
19-
<Appenders>
20-
<Console name="Console" target="SYSTEM_OUT">
21-
<PatternLayout pattern="[%d][%t][%p][%c:%L] %m%n" />
22-
</Console>
23-
</Appenders>
24-
<Loggers>
25-
<Root level="INFO">
26-
<AppenderRef ref="Console" />
27-
</Root>
28-
</Loggers>
19+
<Appenders>
20+
<Console name="Console" target="SYSTEM_OUT">
21+
<PatternLayout pattern="[%d][%t][%p][%c:%L] %m%n"/>
22+
</Console>
23+
</Appenders>
24+
<Loggers>
25+
<Root level="INFO">
26+
<AppenderRef ref="Console"/>
27+
</Root>
28+
</Loggers>
2929
</Configuration>

service-registry/registry-consul/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
-->
1818

1919
<project xmlns="http://maven.apache.org/POM/4.0.0"
20-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
21-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
20+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
21+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2222
<modelVersion>4.0.0</modelVersion>
2323
<parent>
2424
<groupId>org.apache.servicecomb</groupId>

service-registry/registry-consul/src/main/java/org/apache/servicecomb/registry/consul/ConsulConfiguration.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
package org.apache.servicecomb.registry.consul;
1919

2020
import com.google.common.net.HostAndPort;
21+
2122
import org.apache.commons.lang3.StringUtils;
2223
import org.apache.servicecomb.config.DataCenterProperties;
2324
import org.apache.servicecomb.registry.RegistrationId;
@@ -54,7 +55,8 @@ public ConsulDiscoveryProperties consulDiscoveryProperties() {
5455
@ConditionalOnBean(value = {ConsulProperties.class, ConsulDiscoveryProperties.class})
5556
@ConditionalOnMissingBean
5657
public Consul consulClient(ConsulProperties consulProperties, ConsulDiscoveryProperties consulDiscoveryProperties) {
57-
Consul.Builder builder = Consul.builder().withHostAndPort(HostAndPort.fromParts(consulProperties.getHost(), consulProperties.getPort()));
58+
Consul.Builder builder = Consul.builder()
59+
.withHostAndPort(HostAndPort.fromParts(consulProperties.getHost(), consulProperties.getPort()));
5860
if (StringUtils.isNotBlank(consulDiscoveryProperties.getAclToken())) {
5961
builder.withAclToken(consulDiscoveryProperties.getAclToken());
6062
}

0 commit comments

Comments
 (0)