- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的 Spring Boot 1.4 应用程序中使用 JDBC 与本地 MySQL 通信时具有以下属性 -
我知道最后四行是重复的,但我保留了它们以尝试是否有任何组合有效。 Spring Boot 文档说所有数据源 tomcat 属性都应在 spring.datasource.tomcat.* 下。另一方面,前三行适用于 SpringBoot 1.3 和 1.4。因此,期望连接池参数也能正常工作。
启动应用程序后,我在 VisualVM 中检查了它的所有线程。计数约为 20,远小于我设置的 50。在触发 1000 个使用 Spring Data 存储库与 MySQL 通信的 REST 调用后,我看到线程数增加到超过 50。但是,一旦 REST 调用结束并在一段时间后,线程数下降到 ~30。我看到大约 10 个工作线程保持空闲。
那么,我的问题是,您将如何检测 Spring Boot 应用程序线程池中的 JDBC 连接池线程?
另外,属性配置有什么问题?为什么未创建预期线程数的 JDBC 连接池?
最佳答案
连接池不会创建线程(或者:它可能会创建 1 或 2 个线程,但仅此而已)。连接池创建(并跟踪)到数据库的 JDBC 连接,以便在您的应用程序请求时分发。池本身不需要每个连接都有一个线程。
您看到的大多数线程要么来自 Java 本身(例如垃圾收集等)加上处理 HTTP 连接所需的线程(可能会在负载下增加,在空闲时减少),以及您的应用程序代码启动的任何其他线程.
关于tomcat - 如何查找在 Spring Boot 应用程序中创建的 JDBC 连接池线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39609142/
我是一名优秀的程序员,十分优秀!