Apache Tomcat-9.0.16将属性'maxConcurrentStreamExecution'设置为'100'找不到匹配的属性

时间:2019-02-27 14:15:58

标签: java apache tomcat http2 tomcat9

我有一个支持http2且符合9.0.16 documentation的tomcat配置,如果未指定,将使用默认值20。

所以,我只想将maxConcurrentStreamExecution和maxConcurrentStream增加到100或200,所以我按照上述文档进行配置

我的连接器配置如下,

<Connector port="9191" 
    URIEncoding="UTF-8"
    sslImplementationName="org.apache.tomcat.util.net.openssl.OpenSSLImplementation"
    protocol="org.apache.coyote.http11.Http11Nio2Protocol"
    maxThreads="50000" SSLEnabled="true" compressibleMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json,application/xml" 
    compression="on" minSpareThreads="25" 
    noCompressionUserAgents="gozilla, traviata" scheme="https" secure="true" keystoreFile="conf/keystoreFile.keystore" keystorePass="password">
    <UpgradeProtocol compression="on" maxConcurrentStreamExecution="100" maxConcurrentStreams="100" className="org.apache.coyote.http2.Http2Protocol">
    </UpgradeProtocol>
</Connector>

但是,当检查tomcat日志时,我可以看到警告

  

注:拾取JDK_JAVA_OPTIONS:--add-opens = java.base / java.lang = ALL-UNNAMED --add-opens = java.base / java.io = ALL-UNNAMED --add-opens = java .rmi / sun.rmi.transport =全部未命名

     

2019年2月27日19:16:34.595警告[main] org.apache.catalina.startup.SetAllPropertiesRule.begin [SetAllPropertiesRule] {Server / Service / Connector} 将属性“ maxConcurrentStreamExecution”设置为“ 100”找不到匹配的属性。

     

2019年2月27日19:16:34.603警告[main] org.apache.catalina.startup.SetAllPropertiesRule.begin [SetAllPropertiesRule] {Server / Service / Connector} 将属性“ maxConcurrentStreams”设置为“ 100”找不到匹配的属性。

     

2019年2月27日19:16:34.679信息[main] org.apache.catalina.startup.VersionLoggerListener.log服务器版本名称:Apache Tomcat / 9.0.16

     

2019年2月27日19:16:34.679 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log服务器内置:2019年2月4日16:30:29 UTC

     

2019年2月27日19:16:34.680信息[主] org.apache.catalina.startup.VersionLoggerListener.log服务器版本号:9.0.16.0

     

2019年2月27日19:16:34.680信息[main] org.apache.catalina.startup.VersionLoggerListener.log操作系统名称:Linux

     

2019年2月27日19:16:34.680信息[main] org.apache.catalina.startup.VersionLoggerListener.log操作系统版本:4.4.0-141-通用

     

2019年2月27日19:16:34.681信息[main] org.apache.catalina.startup.VersionLoggerListener.log体系结构:amd64

您可以看到Tomcat抛出找不到匹配的属性警告

但是此配置对于提高我的服务器的吞吐量是必需的,该服务器将大量处理http2多路复用的发帖请求

Tomcat:9.0.16, JDK:OpneJDK_10.0.1, 操作系统:Ubunut / Centos

请告诉我我错了哪里以及如何正确配置它以正确使用属性

TIA

1 个答案:

答案 0 :(得分:1)

使用新下载的Apache Tomcat 9.0.16和您提供的Connector元素进行测试,对我没有错误或警告。向UpgradeProtocol这样的<UpgradeProtocol maxConcurrentStreamExecutionTest="100".../>元素属性添加故意的错字会导致以下警告:

  

警告:匹配[服务器/服务/连接器/升级协议]失败   将[maxConcurrentStreamExecutionTest]属性设置为[100]

将此与您的警告日志消息进行比较:

  

2019年2月27日19:16:34.595警告[主要]   org.apache.catalina.startup.SetAllPropertiesRule.begin   [SetAllPropertiesRule] {服务器/服务/连接器}设置属性   'maxConcurrentStreamExecution'到'100'找不到匹配项   属性。

表示您错误地将这些属性添加到<Connector/>元素而不是<UpgradeProtocol/>元素中。这也意味着问题中提供的Connector元素不是为服务器配置的(唯一)元素。