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 2023/02/14 05:08:25 UTC

[servicecomb-java-chassis] branch 2.8.x updated: fix idle time out and keep alive timeout not properly set problem (#3635)

This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch 2.8.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git


The following commit(s) were added to refs/heads/2.8.x by this push:
     new 32b2254fd fix idle time out and keep alive timeout not properly set problem (#3635)
32b2254fd is described below

commit 32b2254fd42b9e97be3af206a45dc6ab82e692f2
Author: Cheng YouLing <97...@users.noreply.github.com>
AuthorDate: Tue Feb 14 13:08:19 2023 +0800

    fix idle time out and keep alive timeout not properly set problem (#3635)
---
 .../client/Http2TransportHttpClientOptionsSPI.java     |  5 +++++
 .../transport/rest/client/TransportClientConfig.java   | 18 +++++++++++++++++-
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/Http2TransportHttpClientOptionsSPI.java b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/Http2TransportHttpClientOptionsSPI.java
index ad0b3bb27..cfa6e9356 100644
--- a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/Http2TransportHttpClientOptionsSPI.java
+++ b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/Http2TransportHttpClientOptionsSPI.java
@@ -66,4 +66,9 @@ public class Http2TransportHttpClientOptionsSPI extends HttpTransportHttpClientO
   public int getIdleTimeoutInSeconds() {
     return TransportClientConfig.getHttp2ConnectionIdleTimeoutInSeconds();
   }
+
+  @Override
+  public int getKeepAliveTimeout() {
+    return TransportClientConfig.getHttp2ConnectionKeepAliveTimeoutInSeconds();
+  }
 }
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 d855d4e31..3ffa3f407 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
@@ -103,7 +103,23 @@ public final class TransportClientConfig {
     }
     result = getConnectionIdleTimeoutInSeconds();
     if (result > 1) {
-      return result - 1; // a bit shorter than ConnectionIdleTimeoutInSeconds
+      // a bit shorter than ConnectionIdleTimeoutInSeconds
+      return result - 1;
+    }
+    return result;
+  }
+
+  public static int getHttp2ConnectionKeepAliveTimeoutInSeconds() {
+    int result = DynamicPropertyFactory.getInstance()
+            .getIntProperty("servicecomb.rest.client.http2.connection.keepAliveTimeoutInSeconds", -1)
+            .get();
+    if (result >= 0) {
+      return result;
+    }
+    result = getHttp2ConnectionIdleTimeoutInSeconds();
+    if (result > 1) {
+      // a bit shorter than ConnectionIdleTimeoutInSeconds
+      return result - 1;
     }
     return result;
   }