gpt4 book ai didi

java - Tomcat - maxThreads 与 maxConnections

转载 作者:IT老高 更新时间:2023-10-28 13:52:49 25 4
gpt4 key购买 nike

在 Tomcat 的 server.xml 中,maxThreadsmaxConnections 是什么?

我了解 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 可以在 2 种模式下工作:

  • BIO – 阻塞 I/O(每个连接一个线程)
  • 蔚来non-blocking I/O (连接比线程多)

Tomcat 7BIO by default ,尽管共识似乎是“不要使用 BIO,因为 NIO 在各方面都更好”。 (并且 BIO 已经完全是 thrown out of 8.5.0 和更高版本。)您可以使用 protocol parameter 进行设置。在 server.xml 文件中。

  • BIO 将是 HTTP/1.1org.apache.coyote.http11.Http11Protocol
  • NIO 将是 org.apache.coyote.http11.Http11NioProtocol

如果您使用的是 BIO,那么我相信它们应该或多或少相同。

如果您使用的是 NIO,那么实际上“maxConnections=1000”和“maxThreads=10”甚至可能是合理的。默认值为 maxConnections=10,000 和 maxThreads=200。使用 NIO,每个线程可以服务于任意数量的连接,来回切换但保留连接,因此您不需要进行所有通常的握手,这对于 HTTPS 特别耗时,但对于 HTTP 甚至是一个问题。您可以调整“keepAlive”参数以使连接保持更长时间,这应该会加快一切速度。

关于java - Tomcat - maxThreads 与 maxConnections,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24678661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com