首页 > 解决方案 > 为什么 hikari 连接池在接收同时多个请求时只使用 1 或 2 个连接?

问题描述

Hikari Pool 看起来在池中的许多连接中只使用 1 或 2 个连接。我不知道为什么?

我们的服务在启动我的服务时使用 hikari 连接池。最大池大小 50 连接超时 3000

我从 jmeter 向我们的服务发送了 100 个请求并监控 mysql 进程列表。mysql进程是100个进程。但只使用了 2 个连接。这个别人在睡觉。为什么连接池只使用 2 ?Hikari 池中是否有任何配置?

标签: spring-bootconnection-poolinghikaricpspring-mybatis

解决方案


要么您在 MySQL 中测量错误,要么应用程序不需要更多连接,您可以减小池大小。如果您不确定是否应该检查您的 JMeter 测试用例,只需针对单个并发用户对其进行调试,以证明它在使用 100 个并发用户之前完成了您的预期。

使用像 HikariCP 这样的池,您的应用程序代码会成为每次调用时维护Connection的物理对象的代理对象。如果您的应用程序具有短期事务,例如用于快速语句的新事务,则物理连接利用率可能会很低。ConnectionDataSource.getConnection()SELECT ... FROM ...


推荐阅读