spring-boot - Spring Boot 连接池最大大小允许更多连接
问题描述
我在 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>
- 即使我有 maximumPoolSize 10 我也可以同时建立 500 个连接。为什么允许?
- 我的 Hikari 连接池设置是否错误?即我是否需要通过在 pom.xml 中排除它来禁用 tomcat 连接池(我相信在 Spring 2.0 中不需要它)
解决方案
并发用户数是同时访问服务器的潜在请求数。请注意,它可以在关于页面(静态页面)上,因此根本不会到达/影响数据库。
即使请求到达数据库,如果池已达到最大活动连接,则池正在等待连接,在您的情况下,最多 30 秒,这对于实时数据库事务而言是很多的。
如何设置数据源很复杂,但总的来说你的设置是正确的,你只是在比较不同的指标。
推荐阅读
- sql - 无法过滤掉 NULL 包含列
- select - 如何在类似于 datepicker 的 ionic ion-select 中显示选择项?
- python - 带有猴子补丁方法的实例代理
- mysql - Mysql如何搜索select语句的结果
- python - 在 Python 中解析带有 JSON 对象的文件
- node.js - npm 显示严重性漏洞 Laravel
- python - 我如何得到这个网站的回复?
- python - 如何在 Django 中创建新帐户(对象)?
- c# - Selenium WebDriver 套接字异常
- java - hibernate:使用@OneToMany 或@ManyToMany 定位未映射的类