在Tomcat server.xml
中,什么是maxThreads
与maxConnections
我知道maxConnections
是服务器打开的连接数maxThreads
是请求处理线程的最大数量
但是,两个配置参数如何协同工作,显然您不会将maxConnections
设置为1000并将maxThreads
设置为10
这两个配置参数之间是什么关系?
<Connector
port="8443"
protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="250"
SSLEnabled="true"
scheme="https" secure="true"
clientAuth="false"
sslProtocol="TLS"
connectiontimeout="20000"
/>
最佳答案
Tomcat可以在两种模式下工作:
Tomcat 7是BIO by default,尽管共识似乎是“不要使用Bio,因为Nio在各个方面都更好”。您可以使用
protocol
文件中的 server.xml
parameter进行设置。HTTP/1.1
或org.apache.coyote.http11.Http11Protocol
org.apache.coyote.http11.Http11NioProtocol
如果您使用的是BIO,那么我相信它们应该大致相同。
如果您使用的是NIO,则实际上“maxConnections = 1000”和“maxThreads = 10”甚至可能是合理的。默认值为maxConnections = 10,000和maxThreads = 200。使用NIO,每个线程可以服务于任意数量的连接,来回切换但保留连接,因此您无需执行所有通常的握手操作,这对于HTTPS而言特别耗时,而对于HTTP而言则是一个问题。您可以调整“keepAlive”参数,以保持较长的连接时间,这将加快所有速度。