- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Spring Boot REST 异步应用程序,想要调整:
最佳答案
假设您使用的是 Spring Boot 2.1 并且没有更改默认值(使用 Tomcat 作为嵌入式容器,使用 Hikari 作为连接池)。
Tomcat 请求处理线程
要修改线程数(默认情况下,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
命名空间属性,特别是你的连接池的一个(默认是 Hikari,所以 spring.datasource.hikari
中的那些,spring.datasource.tomcat
是 Tomcat JDBC 连接池在 Spring Boot 2.0 之前的默认值)。所以设置spring.datasource.hikari.maximum-pool-size
管理最大数量的线程。
笔记
它们彼此没有任何关系,也应该相互混淆(恕我直言,这在引用指南中已经很清楚,每个都有不同的目的)。见 Appendix A Spring Boot 引用指南的常见属性列表。
关于java - server.tomcat.max-threads VS corePoolSize VS spring.datasource.tomcat.max,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54126131/
javadoc说: When a new task is submitted [...], and fewer than corePoolSize threads are running, a new
这个问题已经有答案了: Dynamic resizing of java.util.concurrent.ThreadPoolExecutor while it has waiting tasks (
我不清楚类 java.util.concurrent.Executors 中 newScheduledThreadPool() 方法的“corePoolSize”参数是什么意思。 如果我输入较高的数值
我已经配置了 Spring ThreadPoolTaskExecutor,考虑到至少有 16 个线程,根据需要最多可达 256 个: 但是正如我从日志中看到的,线
我想要一个 ScheduledThreadPoolExecutor,如果没有工作要做,它也会停止最后一个线程,如果有新任务,它会创建(并让线程保持 Activity 状态一段时间)。但是一旦没有更多的
我正在尝试制作一个基于经典工作池模型的 Scala 应用服务器。鉴于: 机器有一个四核处理器 有一个专门用于阻塞网络 I/O 监听的调度器 actor worker actor 都是非阻塞的。 要最大
我正在学习 Java 并发实践,并在 8.3.1 线程创建和拆卸部分下看到了一条语句。这是声明 - “即使没有要执行的任务,实现也会尝试将池保持在这个大小,并且不会创建比这更多的线程,除非工作队列已满
ExecutorService.newCachedThreadPool() 的定义是 public static ExecutorService newCachedThreadPool(ThreadF
我有一个带有 corePoolSize=1 和 maxPoolSize=1 的 ThreadPoolExecutor,并由无界的 LinkedBlockingQueue 支持。 假设在时间 t,池中的
传递给 ThreadPoolExecutor/ScheduledThreadPoolExecutor 的推荐 corePoolSize 是多少? Runtime.getRuntime().availa
我正在学习 Java 并发实践 并卡在了8.3.1 线程创建和拆卸 主题上。以下脚注警告将 corePoolSize 保持为零。 Developers are sometimes tempted to
我想知道 corePoolSize 和 throttle-limit 之间的区别,作为定义多线程配置的 Spring Batch 属性。 感谢这篇文章 "What is the difference
The documentation表示如果 corePoolSize 小于零,构造函数将抛出 IllegalArgumentException。这表明零是一个有效值,意味着不在池中保留任何空闲线程。这
我一直在研究使用 ThreadPoolExecutor 和 JDK6 进行线程池的不同策略。我有一个优先级队列在工作,但不确定我是否喜欢在 keepAliveTime 之后池没有调整大小的方式(无界队
我必须向网站的所有用户发送大量电子邮件。我想为每封发送的电子邮件使用一个线程池。目前我已将值设置为: 两者之间有什么区别,是否会扩展。目前我有大约。 10000 个用户。 最佳答案 以下是 Sun
我在使用 Java 6 的 ThreadPoolExecutor 时遇到了一个奇怪的问题。当我动态更改 corePoolSize 时,我发现线程池没有处理应有的任务。 例如,如果我有 4 个 core
我在生产中遇到了一个有趣的问题。 我有以下 ScheduledThreadPool 分配代码: ScheduledExecutorService executorService =
给出的是 ScheduledThreadPoolExecutor 的以下配置每五秒运行一个简单的任务: int corePoolSize = 0; ScheduledExecutorService e
我有一个 Spring Boot REST 异步应用程序,想要调整: 来自客户端的连接线程(希望 REST 请求并行) 我的服务层中@Async 方法的线程数 数据库连接池 浏览文档和网站发现了可能性
我是一名优秀的程序员,十分优秀!