我想知道maxLifetime
和idleTimeout
设置在固定大小的Hikari池中的行为。
在哪种情况下连接从固定大小的池中退出?由于池是固定大小的,退休后是否立即创建了新连接?
此外,如果数据库本身(在我的情况下是MySQL)在达到数据库等待超时后关闭连接(如果maxLifetime
不小于数据库超时)会发生什么?
连接是否会从固定大小的池中退出,另一个将立即创建?
谢谢!
答案 0 :(得分:11)
当连接到达maxLifetime或者连接在池中为idleTimeout保持空闲时,HikariCP将停止连接。
HikariCP管家默认每30秒运行一次。保持最小的空闲'连接,它可能会添加新的连接或退出空闲连接(客户端没有借用idleTimeout millis)。
你必须设置maxLifetime少于(mysql)wait_timeout几分钟,以避免连接/异常中断。
HikariCP可能会在管家中或客户端尝试借用连接时添加新连接。所以它可能不会在退休后立即添加连接。