This is an automated email from the ASF dual-hosted git repository.
youling1128 pushed a commit to branch 2.9.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
The following commit(s) were added to refs/heads/2.9.x by this push:
new 59ebf691f [#4813] Adjust the log information about scheduled tasks and
limiting to improve product experience (#4814) (#4817) (#4847)
59ebf691f is described below
commit 59ebf691f8c1eb7c01509afd80d8444150da43a9
Author: Alex <[email protected]>
AuthorDate: Wed Jun 18 15:41:59 2025 +0800
[#4813] Adjust the log information about scheduled tasks and limiting to
improve product experience (#4814) (#4817) (#4847)
---
.../servicecomb/config/center/client/ConfigCenterClient.java | 5 +++++
.../servicecomb/config/center/client/ConfigCenterManager.java | 3 ++-
.../java/org/apache/servicecomb/config/kie/client/KieClient.java | 6 ++++++
.../apache/servicecomb/config/kie/client/KieConfigManager.java | 3 ++-
.../servicecomb/service/center/client/ServiceCenterClient.java | 5 +++++
.../service/center/client/ServiceCenterDiscovery.java | 5 ++++-
.../service/center/client/ServiceCenterRegistration.java | 9 +++++++--
7 files changed, 31 insertions(+), 5 deletions(-)
diff --git
a/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/ConfigCenterClient.java
b/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/ConfigCenterClient.java
index 455af63c0..66d9d154f 100644
---
a/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/ConfigCenterClient.java
+++
b/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/ConfigCenterClient.java
@@ -127,6 +127,11 @@ public class ConfigCenterClient implements
ConfigCenterOperation {
queryConfigurationsResponse.setChanged(false);
addressManager.recordSuccessState(address);
return queryConfigurationsResponse;
+ } else if (httpResponse.getStatusCode() ==
HttpStatus.SC_TOO_MANY_REQUESTS) {
+ LOGGER.warn("rate limited, keep the local dimension [{}] configs
unchanged.", dimensionsInfo);
+ queryConfigurationsResponse.setChanged(false);
+ addressManager.recordSuccessState(address);
+ return queryConfigurationsResponse;
} else if (httpResponse.getStatusCode() == HttpStatus.SC_BAD_REQUEST) {
throw new OperationException("Bad request for query configurations.");
} else {
diff --git
a/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/ConfigCenterManager.java
b/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/ConfigCenterManager.java
index 7e972e289..3d60a1468 100644
---
a/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/ConfigCenterManager.java
+++
b/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/ConfigCenterManager.java
@@ -89,7 +89,8 @@ public class ConfigCenterManager extends AbstractTask {
}
startTask(new
BackOffSleepTask(configCenterConfiguration.getRefreshIntervalInMillis(), new
PollConfigurationTask(0)));
} catch (Exception e) {
- LOGGER.error("get configurations from ConfigCenter failed, and will
try again.", e);
+ LOGGER.warn("get configurations from ConfigCenter failed, and will try
again, cause message: {}. current "
+ + "fail does not affect the obtained historical configuration.",
e.getCause().getMessage());
startTask(new BackOffSleepTask(failCount + 1, new
PollConfigurationTask(failCount + 1)));
}
}
diff --git
a/clients/config-kie-client/src/main/java/org/apache/servicecomb/config/kie/client/KieClient.java
b/clients/config-kie-client/src/main/java/org/apache/servicecomb/config/kie/client/KieClient.java
index f34c7d86a..2ab932547 100644
---
a/clients/config-kie-client/src/main/java/org/apache/servicecomb/config/kie/client/KieClient.java
+++
b/clients/config-kie-client/src/main/java/org/apache/servicecomb/config/kie/client/KieClient.java
@@ -111,6 +111,12 @@ public class KieClient implements KieConfigOperation {
addressManager.recordSuccessState(address);
return configurationsResponse;
}
+ if (httpResponse.getStatusCode() == HttpStatus.SC_TOO_MANY_REQUESTS) {
+ LOGGER.warn("rate limited, keep the local dimension [{}] configs
unchanged.", request.getLabelsQuery());
+ configurationsResponse.setChanged(false);
+ addressManager.recordSuccessState(address);
+ return configurationsResponse;
+ }
addressManager.recordFailState(address);
throw new OperationException(
"read response failed. status:" + httpResponse.getStatusCode() + ";
message:" +
diff --git
a/clients/config-kie-client/src/main/java/org/apache/servicecomb/config/kie/client/KieConfigManager.java
b/clients/config-kie-client/src/main/java/org/apache/servicecomb/config/kie/client/KieConfigManager.java
index 3c4af57cd..72adb86a5 100644
---
a/clients/config-kie-client/src/main/java/org/apache/servicecomb/config/kie/client/KieConfigManager.java
+++
b/clients/config-kie-client/src/main/java/org/apache/servicecomb/config/kie/client/KieConfigManager.java
@@ -155,7 +155,8 @@ public class KieConfigManager extends AbstractTask {
startTask(new
BackOffSleepTask(kieConfiguration.getRefreshIntervalInMillis(), new
PollConfigurationTask(0, this.configurationsRequest)));
}
} catch (Exception e) {
- LOGGER.error("get configurations from KieConfigCenter failed, and will
try again.", e);
+ LOGGER.warn("get configurations from KieConfigCenter failed, and will
try again, cause message: {}. current "
+ + "fail does not affect the obtained historical configuration.",
e.getCause().getMessage());
startTask(
new BackOffSleepTask(failCount + 1, new
PollConfigurationTask(failCount + 1, this.configurationsRequest)));
}
diff --git
a/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterClient.java
b/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterClient.java
index 4abc2411f..cbab90217 100755
---
a/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterClient.java
+++
b/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterClient.java
@@ -249,6 +249,11 @@ public class ServiceCenterClient implements
ServiceCenterOperation {
result.setModified(false);
return result;
}
+ if (response.getStatusCode() == HttpStatus.SC_TOO_MANY_REQUESTS) {
+ LOGGER.warn("rate limited, keep the local service {}#{} instance cache
unchanged.", appId, serviceName);
+ result.setModified(false);
+ return result;
+ }
sendUnAuthorizedEvent(response);
throw new OperationException(
"get service instances list fails, statusCode = " +
response.getStatusCode() + "; message = " + response
diff --git
a/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterDiscovery.java
b/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterDiscovery.java
index ccc8fb169..74c73efca 100644
---
a/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterDiscovery.java
+++
b/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterDiscovery.java
@@ -186,11 +186,14 @@ public class ServiceCenterDiscovery extends AbstractTask {
}
}
} catch (Exception e) {
- LOGGER.error("find service {}#{} instance failed.", k.appId,
k.serviceName, e);
if (!(e.getCause() instanceof IOException)) {
// for IOException, do not remove cache, or when service center
// not available, invocation between microservices will fail.
failedKeys.add(k);
+ LOGGER.error("find service {}#{} instance failed and remove local
cache.", k.appId, k.serviceName, e);
+ } else {
+ LOGGER.warn("find service {}#{} instance failed, remaining local
instances cache, cause message: {}",
+ k.appId, k.serviceName, e.getMessage());
}
}
return failedKeys;
diff --git
a/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterRegistration.java
b/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterRegistration.java
index 02d76ebbb..eafd58f48 100644
---
a/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterRegistration.java
+++
b/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterRegistration.java
@@ -277,7 +277,7 @@ public class ServiceCenterRegistration extends AbstractTask
{
}
if (!serviceCenterClient.sendHeartBeat(microservice.getServiceId(),
microserviceInstance.getInstanceId())) {
- LOGGER.error("send heart failed, and will try again.");
+ LOGGER.warn("send heart failed, and will try again.");
eventBus.post(new HeartBeatEvent(false, microservice,
microserviceInstance));
startTask(new BackOffSleepTask(failedCount + 1, new
SendHeartBeatTask(failedCount + 1)));
} else {
@@ -287,7 +287,12 @@ public class ServiceCenterRegistration extends
AbstractTask {
new BackOffSleepTask(Math.max(heartBeatInterval,
heartBeatRequestTimeout), new SendHeartBeatTask(0)));
}
} catch (Exception e) {
- LOGGER.error("send heart failed, and will try again.", e);
+ // If heartbeat failures three times, log error stack help
troubleshooting. Others just log message as warn.
+ if (failedCount == 2) {
+ LOGGER.error("send heart failed, and will try again.", e);
+ } else {
+ LOGGER.warn("send heart failed, and will try again. message [{}]",
e.getCause().getMessage());
+ }
eventBus.post(new HeartBeatEvent(false, microservice,
microserviceInstance));
startTask(new BackOffSleepTask(failedCount + 1, new
SendHeartBeatTask(failedCount + 1)));
}