最近项目做压力测试,发现hikari cp会报一些错误,优化排查花了不少时间。有同样问题的可以参考下
尽量配置固定大小的数据库连接池
maximum-pool-size:默认10,一般为 cpu数*2+磁盘数+10(另外加的10保证服务载的时候连接不会被频繁recycle)
idle-timeout: 建议设置为0,pool设置为固定大小的连接池(大小取决于maximum-pool-size)保证每次都能直接在pool中拿到可以连接;
connection-timeout: 建议设置比数据库大一些
max-life-time: 建议设置比数据库小一些,保证池中的连接都是可用的;比如数据库设置30分钟,那么这里可以设置1740000L 毫秒=29分钟
mysql> show variables like '%timeout%';
+-----------------------------+----------+
| Variable_name | Value |
+-----------------------------+----------+
| connect_timeout | 10 秒 | hikari cp connectionTimeout
| wait_timeout | 1800 秒 | hikari cp maxLifeTime
+-----------------------------+----------+
问题一:
Connection is not available, request timed out after xxxx ms
升级hikariCP版本不小于3.3.1
网友评论