【发布时间】:2019-04-09 17:15:25
【问题描述】:
我在 Spring boot 2.0 应用程序中将最大池大小配置为 10(我正在使用 Hikari 连接池)。我正在使用 JMeter 测试我的 REST API。我正在尝试模拟 500 个并发用户(线程组 - > 线程属性 - > 线程数(用户):500)。我希望测试在第 20 次请求后会失败,但我的 JMeter 测试运行良好。
spring.datasource.hikari.minimumIdle: 10
spring.datasource.hikari.maximumPoolSize: 10
spring.datasource.hikari.connectionTimeout: 30000
spring.datasource.hikari.idleTimeout: 600000
spring.datasource.hikari.maxLifetime: 1800000
spring.datasource.hikari.connectionInitSql: SELECT 1 FROM DUAL
pom.xml
<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
- 即使我的最大池大小为 10,我也能够同时建立 500 个连接。为什么允许?
- 我的 Hikari 连接池设置是否错误?即我是否需要通过在 pom.xml 中排除它来禁用 tomcat 连接池(我相信它在 Spring 2.0 中不需要)
【问题讨论】:
-
这些
500 connections,jmeter 线程是什么?如果你真的想计算数据库连接,你必须计算到数据库的 ESTABLISHED tcp 连接。
标签: spring-boot jmeter database-connection connection-pooling hikaricp