Skip to content

Commit

Permalink
fix: fix lossless deregister failed when no health-check configured (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewshan committed Apr 20, 2024
1 parent 5645026 commit 0fc1d2d
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 73 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@
- [fix:fix nearby router properties loading bug.](https://github.com/Tencent/spring-cloud-tencent/pull/1273)
- [refactor:let the configuration SDK context stand alone.](https://github.com/Tencent/spring-cloud-tencent/pull/1275)
- [fix: fix grammar issues for lane router example & optimize the gateway dependency](https://github.com/Tencent/spring-cloud-tencent/pull/1276)
- [fix: fix lossless deregister failed when no healthcheck configured](https://github.com/Tencent/spring-cloud-tencent/pull/1281)
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -32,5 +33,4 @@ management:
exposure:
include:
- polaris-discovery
- polaris-ratelimit
- polaris-config
- health
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -158,57 +158,7 @@ public static void innerConfigDestroy() {
}

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();
}

Expand All @@ -225,37 +175,37 @@ public static void setConfigSDKContext(SDKContext context) {
}

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;
}

Expand All @@ -268,6 +218,59 @@ public SDKContext getConfigSDKContext() {
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<PolarisConfigModifier> configModifierList = new ArrayList<>();
Expand Down

0 comments on commit 0fc1d2d

Please sign in to comment.