项目正常启动,接口正常调用,后台间歇性报数据库连接错误,没有找到解决办法
来源:4-10 【读写分离】 使用主从架构下的读写分离降低数据库压力

HandsonAlex
2023-08-25
项目正常启动,接口也能正常访问,数据可以正常插入和修改,但是后台会间歇性报错,看起来是某个线程连接数据库超时,不太清楚是哪的问题。
报错信息如下,麻烦老师解答一下
2023-08-25T19:06:03.407+08:00 ERROR 3052 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool : qiyu-user-pool - Error thrown while acquiring connection from data source
java.sql.SQLTransientConnectionException: HikariPool-3 - Connection is not available, request timed out after 30003ms.
at com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:696) ~[HikariCP-5.0.1.jar:na]
at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:181) ~[HikariCP-5.0.1.jar:na]
at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:146) ~[HikariCP-5.0.1.jar:na]
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:128) ~[HikariCP-5.0.1.jar:na]
at org.apache.shardingsphere.driver.jdbc.core.connection.ConnectionManager.createConnection(ConnectionManager.java:366) ~[shardingsphere-jdbc-core-5.3.2.jar:5.3.2]
at org.apache.shardingsphere.driver.jdbc.core.connection.ConnectionManager.createConnections(ConnectionManager.java:334) ~[shardingsphere-jdbc-core-5.3.2.jar:5.3.2]
at org.apache.shardingsphere.driver.jdbc.core.connection.ConnectionManager.getConnections(ConnectionManager.java:323) ~[shardingsphere-jdbc-core-5.3.2.jar:5.3.2]
at org.apache.shardingsphere.infra.executor.sql.prepare.driver.DriverExecutionPrepareEngine.group(DriverExecutionPrepareEngine.java:88) ~[shardingsphere-infra-executor-5.3.2.jar:5.3.2]
at org.apache.shardingsphere.infra.executor.sql.prepare.AbstractExecutionPrepareEngine.prepare(AbstractExecutionPrepareEngine.java:65) ~[shardingsphere-infra-executor-5.3.2.jar:5.3.2]
at org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement.createExecutionGroupContext(ShardingSphereStatement.java:559) ~[shardingsphere-jdbc-core-5.3.2.jar:5.3.2]
at org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement.useDriverToExecute(ShardingSphereStatement.java:592) ~[shardingsphere-jdbc-core-5.3.2.jar:5.3.2]
at org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement.execute0(ShardingSphereStatement.java:504) ~[shardingsphere-jdbc-core-5.3.2.jar:5.3.2]
at org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement.execute(ShardingSphereStatement.java:433) ~[shardingsphere-jdbc-core-5.3.2.jar:5.3.2]
at com.zaxxer.hikari.pool.PoolBase.executeSql(PoolBase.java:578) ~[HikariCP-5.0.1.jar:na]
at com.zaxxer.hikari.pool.PoolBase.setupConnection(PoolBase.java:425) ~[HikariCP-5.0.1.jar:na]
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) ~[HikariCP-5.0.1.jar:na]
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201) ~[HikariCP-5.0.1.jar:na]
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:470) ~[HikariCP-5.0.1.jar:na]
at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:733) ~[HikariCP-5.0.1.jar:na]
at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:712) ~[HikariCP-5.0.1.jar:na]
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) ~[na:na]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
写回答
2回答
-
Ransang
2023-11-07
看下你的application.yml文件中minimum-idle的值是不是150,改成15就好了,文档中直接复制过来的配置还是要仔细看下的,有些跟老师课里的不一样
10 -
Danny_Idea
2023-08-25
这种可以在你的数据库端 用show processlist 看看各个连接的状态再推断分析00
相似问题