我在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.hml
<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>
并发用户数是同时命中服务器的潜在请求数。请注意,它可以在页面(静态页面)上,因此根本不会达到/影响数据库。
即使请求到达数据库,如果池已达到最大活动连接,则池正在等待连接,在您的情况下,最多30秒,这在实时数据库事务中很多。
如何设置数据源很复杂,但一般来说,您的设置是正确的,您只是在比较不同的指标。