diff --git a/spring-cloud-tencent-examples/lossless-example/lossless-callee-service/src/main/resources/bootstrap.yml b/spring-cloud-tencent-examples/lossless-example/lossless-callee-service/src/main/resources/bootstrap.yml
index cdd07b831..4e8c2a8ce 100644
--- a/spring-cloud-tencent-examples/lossless-example/lossless-callee-service/src/main/resources/bootstrap.yml
+++ b/spring-cloud-tencent-examples/lossless-example/lossless-callee-service/src/main/resources/bootstrap.yml
@@ -20,8 +20,9 @@ spring:
port: 28084
lossless:
enabled: true
- healthCheckPath: /lossless/callee/health
- healthCheckInterval: 5000
+ port: 28084
+ #healthCheckPath: /actuator/health
+ #healthCheckInterval: 5000
lossless:
healthy:
delay:
@@ -32,5 +33,4 @@ management:
exposure:
include:
- polaris-discovery
- - polaris-ratelimit
- - polaris-config
\ No newline at end of file
+ - health
\ No newline at end of file
diff --git a/spring-cloud-tencent-examples/lossless-example/lossless-nacos-callee-service/src/main/resources/bootstrap.yml b/spring-cloud-tencent-examples/lossless-example/lossless-nacos-callee-service/src/main/resources/bootstrap.yml
index 1487942e9..a621c8c49 100644
--- a/spring-cloud-tencent-examples/lossless-example/lossless-nacos-callee-service/src/main/resources/bootstrap.yml
+++ b/spring-cloud-tencent-examples/lossless-example/lossless-nacos-callee-service/src/main/resources/bootstrap.yml
@@ -6,23 +6,15 @@ spring:
cloud:
nacos:
discovery:
- server-addr: 9.134.5.52:8848
+ server-addr: 127.0.0.1:8848
enabled: true
- namespace: "test1"
polaris:
lossless:
enabled: true
- healthCheckPath: /lossless/nacos/callee/health
+ port: 28085
+ healthCheckPath: /actuator/health
healthCheckInterval: 5000
lossless:
healthy:
delay:
- second: 20
-management:
- endpoints:
- web:
- exposure:
- include:
- - polaris-discovery
- - polaris-ratelimit
- - polaris-config
\ No newline at end of file
+ second: 20
\ No newline at end of file
diff --git a/spring-cloud-tencent-examples/quickstart-example/quickstart-callee-service-a/pom.xml b/spring-cloud-tencent-examples/quickstart-example/quickstart-callee-service-a/pom.xml
index ce6588118..580f3679c 100644
--- a/spring-cloud-tencent-examples/quickstart-example/quickstart-callee-service-a/pom.xml
+++ b/spring-cloud-tencent-examples/quickstart-example/quickstart-callee-service-a/pom.xml
@@ -28,6 +28,12 @@
org.springframework.boot
spring-boot-starter-actuator
+
+
+ com.tencent.cloud
+ spring-cloud-tencent-lossless-plugin
+
+
diff --git a/spring-cloud-tencent-examples/quickstart-example/quickstart-callee-service-a/src/main/resources/application.yml b/spring-cloud-tencent-examples/quickstart-example/quickstart-callee-service-a/src/main/resources/application.yml
index 787baac99..c0bc7c4fb 100644
--- a/spring-cloud-tencent-examples/quickstart-example/quickstart-callee-service-a/src/main/resources/application.yml
+++ b/spring-cloud-tencent-examples/quickstart-example/quickstart-callee-service-a/src/main/resources/application.yml
@@ -33,6 +33,11 @@ spring:
enabled: true
rejectRequestTipsFilePath: reject-tips.html
maxQueuingTime: 500
+ lossless:
+ enabled: true
+ port: 28011
+ healthCheckPath: /actuator/health
+ healthCheckInterval: 5000
tencent:
metadata:
content:
@@ -40,11 +45,14 @@ spring:
region: huanan
management:
endpoints:
+ health:
+ enabled: true
web:
exposure:
include:
- polaris-discovery
- polaris-ratelimit
- polaris-config
+ - health
label:
key-value: user:zhangsan
diff --git a/spring-cloud-tencent-examples/quickstart-example/quickstart-callee-service-b/pom.xml b/spring-cloud-tencent-examples/quickstart-example/quickstart-callee-service-b/pom.xml
index 0f3495e9e..258c7abfb 100644
--- a/spring-cloud-tencent-examples/quickstart-example/quickstart-callee-service-b/pom.xml
+++ b/spring-cloud-tencent-examples/quickstart-example/quickstart-callee-service-b/pom.xml
@@ -28,6 +28,11 @@
org.springframework.boot
spring-boot-starter-actuator
+
+
+ com.tencent.cloud
+ spring-cloud-tencent-lossless-plugin
+
diff --git a/spring-cloud-tencent-examples/quickstart-example/quickstart-callee-service-b/src/main/resources/application.yml b/spring-cloud-tencent-examples/quickstart-example/quickstart-callee-service-b/src/main/resources/application.yml
index b74bef5a1..f44130629 100644
--- a/spring-cloud-tencent-examples/quickstart-example/quickstart-callee-service-b/src/main/resources/application.yml
+++ b/spring-cloud-tencent-examples/quickstart-example/quickstart-callee-service-b/src/main/resources/application.yml
@@ -32,6 +32,11 @@ spring:
ratelimit:
enabled: true
maxQueuingTime: 500
+ lossless:
+ enabled: true
+ port: 28012
+ healthCheckPath: /actuator/health
+ healthCheckInterval: 5000
tencent:
metadata:
content:
@@ -45,5 +50,6 @@ management:
- polaris-discovery
- polaris-ratelimit
- polaris-config
+ - health
label:
key-value: user2:lisi
diff --git a/spring-cloud-tencent-examples/quickstart-example/quickstart-caller-service/pom.xml b/spring-cloud-tencent-examples/quickstart-example/quickstart-caller-service/pom.xml
index cc72331c6..3d8e23b61 100644
--- a/spring-cloud-tencent-examples/quickstart-example/quickstart-caller-service/pom.xml
+++ b/spring-cloud-tencent-examples/quickstart-example/quickstart-caller-service/pom.xml
@@ -38,6 +38,11 @@
org.springframework.boot
spring-boot-starter-actuator
+
+
+ com.tencent.cloud
+ spring-cloud-tencent-lossless-plugin
+
diff --git a/spring-cloud-tencent-examples/quickstart-example/quickstart-caller-service/src/main/resources/application.yml b/spring-cloud-tencent-examples/quickstart-example/quickstart-caller-service/src/main/resources/application.yml
index 6383b4505..5150ab7bc 100644
--- a/spring-cloud-tencent-examples/quickstart-example/quickstart-caller-service/src/main/resources/application.yml
+++ b/spring-cloud-tencent-examples/quickstart-example/quickstart-caller-service/src/main/resources/application.yml
@@ -28,6 +28,11 @@ spring:
# pushgateway:
# enabled: true
# address: 127.0.0.1:9091
+ lossless:
+ enabled: true
+ port: 28013
+ healthCheckPath: /actuator/health
+ healthCheckInterval: 5000
tencent:
rpc-enhancement:
enabled: true
@@ -46,3 +51,4 @@ management:
include:
- polaris-discovery
- polaris-circuit-breaker
+ - health
diff --git a/spring-cloud-tencent-examples/quickstart-example/quickstart-gateway-service/pom.xml b/spring-cloud-tencent-examples/quickstart-example/quickstart-gateway-service/pom.xml
index 9bfb76041..5cc1b3de4 100644
--- a/spring-cloud-tencent-examples/quickstart-example/quickstart-gateway-service/pom.xml
+++ b/spring-cloud-tencent-examples/quickstart-example/quickstart-gateway-service/pom.xml
@@ -28,6 +28,16 @@
org.springframework.cloud
spring-cloud-starter-gateway
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+ com.tencent.cloud
+ spring-cloud-tencent-lossless-plugin
+
diff --git a/spring-cloud-tencent-examples/quickstart-example/quickstart-gateway-service/src/main/resources/application.yml b/spring-cloud-tencent-examples/quickstart-example/quickstart-gateway-service/src/main/resources/application.yml
index fd9dd9f05..e9b286aa0 100644
--- a/spring-cloud-tencent-examples/quickstart-example/quickstart-gateway-service/src/main/resources/application.yml
+++ b/spring-cloud-tencent-examples/quickstart-example/quickstart-gateway-service/src/main/resources/application.yml
@@ -27,6 +27,11 @@ spring:
stat:
enabled: true
port: 28081
+ lossless:
+ enabled: true
+ port: 28014
+ healthCheckPath: /actuator/health
+ healthCheckInterval: 5000
gateway:
discovery:
locator:
diff --git a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisSDKContextManager.java b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisSDKContextManager.java
index bbab8c26e..a09bfd81c 100644
--- a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisSDKContextManager.java
+++ b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisSDKContextManager.java
@@ -158,57 +158,7 @@ public class PolarisSDKContextManager {
}
public void init() {
- if (null == serviceSdkContext) {
- try {
- // init SDKContext
- serviceSdkContext = SDKContext.initContextByConfig(properties.configuration(modifierList,
- () -> environment.getProperty("spring.cloud.client.ip-address"),
- () -> environment.getProperty("spring.cloud.polaris.local-port", Integer.class, 0)));
- serviceSdkContext.init();
-
- // init ProviderAPI
- providerAPI = DiscoveryAPIFactory.createProviderAPIByContext(serviceSdkContext);
-
- // init losslessAPI
- losslessAPI = DiscoveryAPIFactory.createLosslessAPIByContext(serviceSdkContext);
-
- // init ConsumerAPI
- consumerAPI = DiscoveryAPIFactory.createConsumerAPIByContext(serviceSdkContext);
-
- // init RouterAPI
- routerAPI = RouterAPIFactory.createRouterAPIByContext(serviceSdkContext);
-
- // init CircuitBreakAPI
- circuitBreakAPI = CircuitBreakAPIFactory.createCircuitBreakAPIByContext(serviceSdkContext);
-
- // init LimitAPI
- limitAPI = LimitAPIFactory.createLimitAPIByContext(serviceSdkContext);
-
- // init AssemblyAPI
- assemblyAPI = AssemblyAPIFactory.createAssemblyAPIByContext(serviceSdkContext);
-
- // add shutdown hook
- Runtime.getRuntime().addShutdownHook(new Thread(() -> {
- long startTimestamp = System.currentTimeMillis();
- long delay = 0;
- while (true) {
- if (!isRegistered || delay >= 60000) {
- innerDestroy();
- break;
- }
- else {
- delay = System.currentTimeMillis() - startTimestamp;
- }
- }
- }));
- LOG.info("create Polaris SDK context successfully. properties: {}, ", properties);
- }
- catch (Throwable throwable) {
- LOG.error("create Polaris SDK context failed. properties: {}, ", properties, throwable);
- throw throwable;
- }
- }
-
+ initService();
initConfig();
}
@@ -225,37 +175,37 @@ public class PolarisSDKContextManager {
}
public SDKContext getSDKContext() {
- init();
+ initService();
return serviceSdkContext;
}
public ProviderAPI getProviderAPI() {
- init();
+ initService();
return providerAPI;
}
public LosslessAPI getLosslessAPI() {
- init();
+ initService();
return losslessAPI;
}
public ConsumerAPI getConsumerAPI() {
- init();
+ initService();
return consumerAPI;
}
public RouterAPI getRouterAPI() {
- init();
+ initService();
return routerAPI;
}
public CircuitBreakAPI getCircuitBreakAPI() {
- init();
+ initService();
return circuitBreakAPI;
}
public LimitAPI getLimitAPI() {
- init();
+ initService();
return limitAPI;
}
@@ -268,6 +218,59 @@ public class PolarisSDKContextManager {
return configSDKContext;
}
+ public void initService() {
+ if (null == serviceSdkContext) {
+ try {
+ // init SDKContext
+ serviceSdkContext = SDKContext.initContextByConfig(properties.configuration(modifierList,
+ () -> environment.getProperty("spring.cloud.client.ip-address"),
+ () -> environment.getProperty("spring.cloud.polaris.local-port", Integer.class, 0)));
+ serviceSdkContext.init();
+
+ // init ProviderAPI
+ providerAPI = DiscoveryAPIFactory.createProviderAPIByContext(serviceSdkContext);
+
+ // init losslessAPI
+ losslessAPI = DiscoveryAPIFactory.createLosslessAPIByContext(serviceSdkContext);
+
+ // init ConsumerAPI
+ consumerAPI = DiscoveryAPIFactory.createConsumerAPIByContext(serviceSdkContext);
+
+ // init RouterAPI
+ routerAPI = RouterAPIFactory.createRouterAPIByContext(serviceSdkContext);
+
+ // init CircuitBreakAPI
+ circuitBreakAPI = CircuitBreakAPIFactory.createCircuitBreakAPIByContext(serviceSdkContext);
+
+ // init LimitAPI
+ limitAPI = LimitAPIFactory.createLimitAPIByContext(serviceSdkContext);
+
+ // init AssemblyAPI
+ assemblyAPI = AssemblyAPIFactory.createAssemblyAPIByContext(serviceSdkContext);
+
+ // add shutdown hook
+ Runtime.getRuntime().addShutdownHook(new Thread(() -> {
+ long startTimestamp = System.currentTimeMillis();
+ long delay = 0;
+ while (true) {
+ if (!isRegistered || delay >= 60000) {
+ innerDestroy();
+ break;
+ }
+ else {
+ delay = System.currentTimeMillis() - startTimestamp;
+ }
+ }
+ }));
+ LOG.info("create Polaris SDK context successfully. properties: {}, ", properties);
+ }
+ catch (Throwable throwable) {
+ LOG.error("create Polaris SDK context failed. properties: {}, ", properties, throwable);
+ throw throwable;
+ }
+ }
+ }
+
public void initConfig() {
// get modifiers for configuration.
List configModifierList = new ArrayList<>();