java - HikariCP 中的计算不匹配

标签 java connection-pooling hikaricp

我正在使用 hikariCP,我可以在 housekeeping 中看到最大连接数为 10,但计算不匹配,如下所示,在 pool-2 中,我可以看到总共 10 个连接,但正在等待 24 个,这是一个问题吗?

|DEBUG|Hikari Housekeeping Timer (pool HikariPool-0)|||com.zaxxer.hikari.pool.HikariPool|Before cleanup pool stats HikariPool-0 (total=10, inUse=0, avail=10, waiting=0) 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-0)|||com.zaxxer.hikari.pool.HikariPool|After cleanup pool stats HikariPool-0 (total=10, inUse=0, avail=10, waiting=0) 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-1)|||com.zaxxer.hikari.pool.HikariPool|Before cleanup pool stats HikariPool-1 (total=10, inUse=0, avail=10, waiting=0) 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-1)|||com.zaxxer.hikari.pool.HikariPool|After cleanup pool stats HikariPool-1 (total=10, inUse=0, avail=10, waiting=0) 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-2)|||com.zaxxer.hikari.pool.HikariPool|Before cleanup pool stats HikariPool-2 (total=10, inUse=10, avail=0, waiting=24) 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-2)|||com.zaxxer.hikari.pool.HikariPool|After cleanup pool stats HikariPool-2 (total=10, inUse=10, avail=0, waiting=24) 
|DEBUG|HikariCP connection filler (pool HikariPool-2)|||com.zaxxer.hikari.pool.HikariPool|After fill pool stats HikariPool-2 (total=10, inUse=10, avail=0, waiting=24) 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-3)|||com.zaxxer.hikari.pool.HikariPool|Before cleanup pool stats HikariPool-3 (total=10, inUse=0, avail=10, waiting=0) 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-3)|||com.zaxxer.hikari.pool.HikariPool|After cleanup pool stats HikariPool-3 (total=10, inUse=0, avail=10, waiting=0) 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-4)|||com.zaxxer.hikari.pool.HikariPool|Before cleanup pool stats HikariPool-4 (total=10, inUse=0, avail=10, waiting=0) 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-4)|||com.zaxxer.hikari.pool.HikariPool|After cleanup pool stats HikariPool-4 (total=10, inUse=0, avail=10, waiting=0) 
|DEBUG|HikariCP connection closer (pool HikariPool-4)|||com.zaxxer.hikari.pool.PoolUtilities|Closing connection com.sybase.jdbc4.jdbc.SybConnection@5129f018 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-5)|||com.zaxxer.hikari.pool.HikariPool|Before cleanup pool stats HikariPool-5 (total=10, inUse=0, avail=10, waiting=0) 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-5)|||com.zaxxer.hikari.pool.HikariPool|After cleanup pool stats HikariPool-5 (total=10, inUse=0, avail=10, waiting=0) 

最佳答案

看来一切都好。您看到的只是 24 个连接请求在等待空闲连接。

HikariCP(主要)取决于 minimumIdlemaximumPoolSize [设置] ( https://github.com/brettwooldridge/HikariCP#configuration-knobs-baby )。 minimumIdle 默认为 maximumPoolSize 的任意值。 maximumPoolSize 默认为 10。

我猜测您的池正在使用默认配置,这可以解释这 24 个等待请求。如果您的系统需要更多可用连接,请尝试增加 maximumPoolSize 的值并将 minimumIdle 设置为 10。

当池启动时,它将建立 10 个连接(空闲),并将它们提供给请求它们的人。然后,当所有连接都在使用时,它将生成更多连接,最多可达 maximumPoolSize 连接。一段时间后,当它们不再使用时,这些连接将被销毁,仅保留 minimumIdle 中的前 10 个连接。

每当您调整池的设置时,请考虑数据库的配置、限制以及第三方访问它的影响。

关于java - HikariCP 中的计算不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31137218/

相关文章:

java - 我无法将字符串转换为日期,以便将其插入到 mysql 数据库中

java - 如何减少我的应用程序的CPU消耗

java - 启动 Spring Boot 应用程序的默认 HikariCP 连接池

java - 如何在 hikari 属性中添加两个数据库?

java - Spring Boot、Spring Data JPA 具有多个 Hikari 数据源和单个数据源配置 Java 文件

java - 如何设置客户端文件夹路径(如 D ://new folder) for download file in spring contoller?

java - Java 的 UUID.randomUUID 有多好?

java - 在jdbc中一次执行多个过程调用

tomcat - 测试 Tomcat 的 JDBC 池连接

java - 在 JBOSS 应用程序服务器下运行的 Java 应用程序中的数据库连接池