【问题标题】:Maximum (client request) thread pool size in spring春季最大(客户端请求)线程池大小
【发布时间】:2014-10-13 11:55:48
【问题描述】:

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

【问题讨论】:

    标签: threadpool spring-boot


    【解决方案1】:

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

    【讨论】:

    • 你应该指出哪个版本的 spring boot 是可以接受的。对于 2.2.1,这是错误的。
    【解决方案2】:

    假设您使用的是嵌入式 Tomcat,Spring Boot 使用server.tomcat.max-threads property 来控制客户端请求线程池的大小。它的默认值是 0,这让 Tomcat 使用它的默认值 200。

    要自定义此线程池的大小,您应该在application.propertiesapplication.yml 文件中为server.tomcat.max-threads 属性指定一个非零值。

    【讨论】:

    • 谢谢。那么,如果服务器收到的请求多于 application.properties 或 application.yml 中指定的请求,该怎么办。我假设它持有请求是吗?
    • [..request 在该请求期间需要一个线程。如果收到的并发请求多于当前可用的请求处理线程可以处理的数量,则将创建额外的线程,直至配置的最大值(maxThreads 属性的值)。如果接收到更多的同时请求,它们会堆积在连接器创建的服务器套接字中,直到配置的最大值(acceptCount 属性的值)。任何进一步的并发请求都将收到“连接被拒绝”错误,直到有可用资源来处理它们。
    • @jocull 是的,他们可以使用ConnectorCustomizer。下面是 Boot 的做法:github.com/spring-projects/spring-boot/blob/master/….
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 2011-01-07
    • 1970-01-01
    • 2019-05-14
    • 1970-01-01
    • 2022-06-24
    • 2012-06-19
    相关资源
    最近更新 更多