Spring 中最大(客户端请求)线程池大小

问题描述 投票:0回答:3

我正在使用 Spring Boot 应用程序开发应用程序服务器,但现在我想知道 Spring 中默认的最大(客户端请求)线程池大小是多少以及如何自定义该值?

threadpool spring-boot
3个回答
167
投票

假设您使用的是嵌入式Tomcat,Spring Boot提供了一个属性来控制客户端请求线程池的大小。它的默认值为零,这使得 Tomcat 使用默认值 200。如果您使用的是 Spring Boot 2.3 或更高版本,则此属性名为

server.tomcat.threads.max
。在 Spring Boot 的早期版本中,该属性名为
server.tomcat.max-threads

要自定义此线程池的大小,您应该在

application.properties
application.yml
文件中为该属性指定一个非零值。


61
投票

由于

server.tomcat.max-threads
自 Springboot 2.3 起已弃用,现在在 Spring
server.tomcat.threads.max
中使用
application.properties
。默认值为 200。


0
投票

正如其他答案中所述,当使用带有嵌入式Tomcat的Spring Boot时,控制线程池大小的设置是

server.tomcat.threads.max

但是,还有一个附加设置 –

server.tomcat.max-connections
– 它可以影响服务器允许的并发 HTTP 请求数。

简述:

  • server.tomcat.threads.max
    设置HTTP请求线程池的大小
  • server.tomcat.max-connections
    设置服务器允许的最大 HTTP 连接数
  • 如果
    server.tomcat.max-connections
    小于
    server.tomcat.threads.max
    ,服务器将不会使用线程池中的所有可用线程,而是将活动请求数限制为最大连接数
  • 两者中较小的一个:这将是您的服务器可以处理的并发 HTTP 请求的数量
这里有更多关于

server.tomcat.threads.max

的详细信息:

    这是HTTP请求线程池的大小。
  • 默认为 200。
  • 来自
  • https://docs.spring.io/spring-boot/appendix/application-properties/index.html#application-properties.server.server.tomcat.threads.max

    最大工作线程数。如果启用虚拟线程则没有效果。

  • 注意:虚拟线程 (
  • spring.threads.virtual.enabled
    ) 默认情况下处于禁用状态,但这是另一个可能会更改服务器行为的配置设置。请参阅:
    https://docs.spring.io/spring-boot/appendix/application-properties/index.html#application-properties.core.spring.threads.virtual.enabled
这里有更多关于

server.tomcat.max-connections

的详细信息:

    这是服务器将“接受”的入站 HTTP 连接数 - 每个接受的连接可能仍需要可用的 Tomcat 线程来处理请求。如果
  • server.tomcat.max-connections 设置为 小于
    server.tomcat.threads.max,则将使用较小的限制。
    默认为8192。
  • 来自
  • https://docs.spring.io/spring-boot/appendix/application-properties/index.html#application-properties.server.server.tomcat.max-connections
  • 服务器在任何给定时间接受和处理的最大连接数。一旦达到限制,操作系统仍可能接受基于“acceptCount”属性的连接。

    只要
  • server.tomcat.connection-timeout
  • 不干扰,此设置 (
    server.tomcat.max-connections
    ) 将允许连接到达服务器并等待,直到 Tomcat 线程可用于处理请求。
        
© www.soinside.com 2019 - 2024. All rights reserved.