summaryrefslogtreecommitdiffstats
path: root/container-core
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-06-03 17:01:26 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-06-03 17:01:26 +0200
commitc56c5cbbc42d5c9c6ffc7cab80ee4d051a402610 (patch)
treebc59d416ea55b1be3794cd2d3fd625ffdf600a81 /container-core
parentabcd15d931e131e461bef2474a97140dd28c47e8 (diff)
Add connector config for HTTP/2 streams
Diffstat (limited to 'container-core')
-rw-r--r--container-core/abi-spec.json38
-rw-r--r--container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/ConnectorFactory.java8
-rw-r--r--container-core/src/main/resources/configdefinitions/jdisc.http.jdisc.http.connector.def4
3 files changed, 44 insertions, 6 deletions
diff --git a/container-core/abi-spec.json b/container-core/abi-spec.json
index efe6701342f..02d43104a3f 100644
--- a/container-core/abi-spec.json
+++ b/container-core/abi-spec.json
@@ -1039,6 +1039,7 @@
"public com.yahoo.jdisc.http.ConnectorConfig$Builder maxRequestsPerConnection(int)",
"public com.yahoo.jdisc.http.ConnectorConfig$Builder maxConnectionLife(double)",
"public com.yahoo.jdisc.http.ConnectorConfig$Builder http2Enabled(boolean)",
+ "public com.yahoo.jdisc.http.ConnectorConfig$Builder http2(com.yahoo.jdisc.http.ConnectorConfig$Http2$Builder)",
"public final boolean dispatchGetConfig(com.yahoo.config.ConfigInstance$Producer)",
"public final java.lang.String getDefMd5()",
"public final java.lang.String getDefName()",
@@ -1053,7 +1054,8 @@
"public com.yahoo.jdisc.http.ConnectorConfig$TlsClientAuthEnforcer$Builder tlsClientAuthEnforcer",
"public com.yahoo.jdisc.http.ConnectorConfig$HealthCheckProxy$Builder healthCheckProxy",
"public com.yahoo.jdisc.http.ConnectorConfig$ProxyProtocol$Builder proxyProtocol",
- "public com.yahoo.jdisc.http.ConnectorConfig$SecureRedirect$Builder secureRedirect"
+ "public com.yahoo.jdisc.http.ConnectorConfig$SecureRedirect$Builder secureRedirect",
+ "public com.yahoo.jdisc.http.ConnectorConfig$Http2$Builder http2"
]
},
"com.yahoo.jdisc.http.ConnectorConfig$HealthCheckProxy$Builder": {
@@ -1089,6 +1091,37 @@
],
"fields": []
},
+ "com.yahoo.jdisc.http.ConnectorConfig$Http2$Builder": {
+ "superClass": "java.lang.Object",
+ "interfaces": [
+ "com.yahoo.config.ConfigBuilder"
+ ],
+ "attributes": [
+ "public"
+ ],
+ "methods": [
+ "public void <init>()",
+ "public void <init>(com.yahoo.jdisc.http.ConnectorConfig$Http2)",
+ "public com.yahoo.jdisc.http.ConnectorConfig$Http2$Builder streamIdleTimeout(double)",
+ "public com.yahoo.jdisc.http.ConnectorConfig$Http2$Builder maxConcurrentStreams(int)",
+ "public com.yahoo.jdisc.http.ConnectorConfig$Http2 build()"
+ ],
+ "fields": []
+ },
+ "com.yahoo.jdisc.http.ConnectorConfig$Http2": {
+ "superClass": "com.yahoo.config.InnerNode",
+ "interfaces": [],
+ "attributes": [
+ "public",
+ "final"
+ ],
+ "methods": [
+ "public void <init>(com.yahoo.jdisc.http.ConnectorConfig$Http2$Builder)",
+ "public double streamIdleTimeout()",
+ "public int maxConcurrentStreams()"
+ ],
+ "fields": []
+ },
"com.yahoo.jdisc.http.ConnectorConfig$Producer": {
"superClass": "java.lang.Object",
"interfaces": [
@@ -1361,7 +1394,8 @@
"public com.yahoo.jdisc.http.ConnectorConfig$SecureRedirect secureRedirect()",
"public int maxRequestsPerConnection()",
"public double maxConnectionLife()",
- "public boolean http2Enabled()"
+ "public boolean http2Enabled()",
+ "public com.yahoo.jdisc.http.ConnectorConfig$Http2 http2()"
],
"fields": [
"public static final java.lang.String CONFIG_DEF_MD5",
diff --git a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/ConnectorFactory.java b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/ConnectorFactory.java
index fc39de72018..4ad39f91a83 100644
--- a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/ConnectorFactory.java
+++ b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/ConnectorFactory.java
@@ -75,7 +75,7 @@ public class ConnectorFactory {
connector.setName(connectorConfig.name());
connector.setAcceptQueueSize(connectorConfig.acceptQueueSize());
connector.setReuseAddress(connectorConfig.reuseAddress());
- connector.setIdleTimeout(idleTimeoutInMillis());
+ connector.setIdleTimeout(toMillis(connector.getIdleTimeout()));
return connector;
}
@@ -162,8 +162,8 @@ public class ConnectorFactory {
private HTTP2ServerConnectionFactory newHttp2ConnectionFactory() {
HTTP2ServerConnectionFactory factory = new HTTP2ServerConnectionFactory(newHttpConfiguration());
- factory.setStreamIdleTimeout(idleTimeoutInMillis());
- factory.setMaxConcurrentStreams(4096);
+ factory.setStreamIdleTimeout(toMillis(connectorConfig.http2().streamIdleTimeout()));
+ factory.setMaxConcurrentStreams(connectorConfig.http2().maxConcurrentStreams());
return factory;
}
@@ -194,6 +194,6 @@ public class ConnectorFactory {
|| (config.implicitTlsEnabled() && TransportSecurityUtils.isTransportSecurityEnabled());
}
- private long idleTimeoutInMillis() { return (long) (connectorConfig.idleTimeout() * 1000.0); }
+ private static long toMillis(double seconds) { return (long)(seconds * 1000); }
}
diff --git a/container-core/src/main/resources/configdefinitions/jdisc.http.jdisc.http.connector.def b/container-core/src/main/resources/configdefinitions/jdisc.http.jdisc.http.connector.def
index 09b883a620e..0b01f690aea 100644
--- a/container-core/src/main/resources/configdefinitions/jdisc.http.jdisc.http.connector.def
+++ b/container-core/src/main/resources/configdefinitions/jdisc.http.jdisc.http.connector.def
@@ -128,3 +128,7 @@ maxConnectionLife double default=0.0
# Enable HTTP/2 (in addition to HTTP/1.1 using ALPN)
http2Enabled bool default=true
+
+http2.streamIdleTimeout double default=600
+
+http2.maxConcurrentStreams int default=4096