我最近将Spring RESTful API数据源从DriverManagerDataSource切换到HikariCp,但我的数据库连接从20个连接转到600个连接。这是否应该发生?
我的设置如下:
<bean id="jdbcDataSource"
class="com.zaxxer.hikari.HikariDataSource" destroy-method="shutdown">
<constructor-arg>
<bean class="com.zaxxer.hikari.HikariConfig">
<constructor-arg>
<props>
<prop key="dataSource.url">url</prop>
<prop key="dataSource.user">user</prop>
<prop key="dataSource.password">password</prop>
<prop key="dataSource.cachePrepStmts">true</prop>
<prop key="dataSource.prepStmtCacheSize">250</prop>
<prop key="dataSource.prepStmtCacheSqlLimit">2048</prop>
<prop key="dataSource.useServerPrepStmts">true</prop>
</props>
</constructor-arg>
<property name="dataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" />
</bean>
</constructor-arg>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="jdbcDataSource" />
</bean>
答案 0 :(得分:2)
我无法使用HikariCP 1.3.3版重现您的问题。我不确定您是如何测量数据库中的连接,但用户经常检查错误的指标。使用:
SHOW STATUS WHERE `variable_name` = 'Threads_connected';
而不是:
SHOW STATYS LIKE 'Con%';
经常被错误使用。