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:07:54 UTC

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

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 2e7c1dbfb fix idle time out and keep alive timeout not properly set problem (#3636)
2e7c1dbfb is described below

commit 2e7c1dbfb8e217ceae63d238ab52273b8d617627
Author: Cheng YouLing <97...@users.noreply.github.com>
AuthorDate: Tue Feb 14 13:07:46 2023 +0800

    fix idle time out and keep alive timeout not properly set problem (#3636)
---
 .../client/Http2TransportHttpClientOptionsSPI.java    |  5 +++++
 .../transport/rest/client/TransportClientConfig.java  | 19 ++++++++++++++++++-
 2 files changed, 23 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..c000e4ad4 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,24 @@ 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;
   }