commit | ad457d16b3bceb06ab081029143ca60ab46773cf | [log] [tgz] |
---|---|---|
author | liubao68 <bismy@qq.com> | Mon Sep 19 20:52:18 2022 +0800 |
committer | GitHub <noreply@github.com> | Mon Sep 19 20:52:18 2022 +0800 |
tree | b8fc108027b8475ccdaf01ba22b1572ed457d921 | |
parent | ebe59e07dff41efe7c776fa729d4068ffeab7953 [diff] |
[SCB-2684]fix idle time out and keep alive timeout not properly set problem (#3346)
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 2e7d630..d7b5c3c 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 @@ @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 e3a0e02..ab7a963 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 @@ @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 20843ed..d855d4e 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 @@ .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",