You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2022/09/19 12:52:23 UTC
[servicecomb-java-chassis] branch master updated: [SCB-2684]fix idle time out and keep alive timeout not properly set problem (#3346)
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 ad457d16b [SCB-2684]fix idle time out and keep alive timeout not properly set problem (#3346)
ad457d16b is described below
commit ad457d16b3bceb06ab081029143ca60ab46773cf
Author: liubao68 <bi...@qq.com>
AuthorDate: Mon Sep 19 20:52:18 2022 +0800
[SCB-2684]fix idle time out and keep alive timeout not properly set problem (#3346)
---
.../client/http/RegistryHttpClientOptionsSPI.java | 6 +++++-
.../rest/client/HttpTransportHttpClientOptionsSPI.java | 2 +-
.../transport/rest/client/TransportClientConfig.java | 15 +++++++++++++++
3 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/http/RegistryHttpClientOptionsSPI.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/http/RegistryHttpClientOptionsSPI.java
index 2e7d630f0..d7b5c3cac 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/http/RegistryHttpClientOptionsSPI.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/http/RegistryHttpClientOptionsSPI.java
@@ -130,7 +130,11 @@ public class RegistryHttpClientOptionsSPI implements HttpClientOptionsSPI {
@Override
public int getKeepAliveTimeout() {
- return HttpClientOptions.DEFAULT_KEEP_ALIVE_TIMEOUT;
+ int result = getIdleTimeoutInSeconds();
+ if (result > 1) {
+ return result - 1;
+ }
+ return result;
}
@Override
diff --git a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/HttpTransportHttpClientOptionsSPI.java b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/HttpTransportHttpClientOptionsSPI.java
index e3a0e0241..ab7a96309 100644
--- a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/HttpTransportHttpClientOptionsSPI.java
+++ b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/HttpTransportHttpClientOptionsSPI.java
@@ -128,7 +128,7 @@ public class HttpTransportHttpClientOptionsSPI implements HttpClientOptionsSPI {
@Override
public int getKeepAliveTimeout() {
- return TransportClientConfig.getConnectionIdleTimeoutInSeconds();
+ return TransportClientConfig.getConnectionKeepAliveTimeoutInSeconds();
}
@Override
diff --git a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/TransportClientConfig.java b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/TransportClientConfig.java
index 20843ed96..d855d4e31 100644
--- a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/TransportClientConfig.java
+++ b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/TransportClientConfig.java
@@ -93,6 +93,21 @@ public final class TransportClientConfig {
.get();
}
+ public static int getConnectionKeepAliveTimeoutInSeconds() {
+ int result = DynamicPropertyFactory.getInstance()
+ .getIntProperty("servicecomb.rest.client.connection.keepAliveTimeoutInSeconds",
+ -1)
+ .get();
+ if (result >= 0) {
+ return result;
+ }
+ result = getConnectionIdleTimeoutInSeconds();
+ if (result > 1) {
+ return result - 1; // a bit shorter than ConnectionIdleTimeoutInSeconds
+ }
+ return result;
+ }
+
public static boolean getConnectionCompression() {
return DynamicPropertyFactory.getInstance()
.getBooleanProperty("servicecomb.rest.client.connection.compression",