J.J*_*eam 3 java spring database-connection threadpool spring-boot
我有一个 Spring Boot REST 异步应用程序,想要调整:
浏览文档和网站发现了可能性:
corePoolSize value=... VS server.tomcat.max-threads = ... - 有什么区别?
spring.datasource.hikari.maximum-pool-size= ... VS spring.datasource.tomcat.max ... = ... - 有什么区别?
假设您使用的是 Spring Boot 2.1 并且没有更改默认值(使用 Tomcat 作为嵌入式容器,使用 Hikari 作为连接池)。
要修改线程数(tomcat 默认已经使用了 200,所以为什么你需要改变它!)使用server.tomcat命名空间中的属性(这些是 Tomcat 特定的!)所以server.tomcat.max-threads用来控制请求处理的数量。
要限制并发 HTTP 连接数,请使用server.tomcat.max-connections(默认值 10000)。这基本上是请求处理线程用来从中挑选/窃取工作的处理队列。
要控制TaskExecutor在 Spring Boot 2.1 中创建的默认使用的线程数,请使用spring.task.execution命名空间中的属性。因此用于spring.task.execution.pool.max-threads设置用于的最大线程数@Async。该spring.task.execution.pool.core-size控制芯(最小)池大小。在max-threads不限制队列大小的情况下增加属性没有spring.task.execution.pool.queue-capacity任何效果。默认队列大小是无界的,一切都不会导致线程数超过core-size.
最后为您的连接池指定连接数(Hikari 的默认值为 10!)。使用spring.datasource命名空间属性和专门的一个连接池(默认为光速所以鸡舍spring.datasource.hikari的spring.datasource.tomcat是2.0之前默认使用的春天启动Tomcat的JDBC连接池)。因此,spring.datasource.hikari.maximum-pool-size将管理设置为最大线程数。
它们彼此之间没有任何关系,也应该相互混淆(恕我直言,参考指南中已经清楚地表明,它们各自具有不同的用途)。有关常用属性的列表,请参阅Spring Boot 参考指南的附录 A。
| 归档时间: |
|
| 查看次数: |
6499 次 |
| 最近记录: |