我有一个支持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
答案 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
元素不是为服务器配置的(唯一)元素。