我想知道在固定大小的Hikari池中maxLifetimeidleTimeout设置的行为。

在什么情况下会从固定大小的池中退出连接?并且由于池是固定大小的,是否在退休后立即创建新的连接?

此外,如果数据库本身(在我的情况下为MySQL)在达到数据库等待超时后关闭连接(如果maxLifetime不小于DB超时)会发生什么情况呢?

是否将从固定大小的池中退出该连接,并立即创建另一个连接?

谢谢!

最佳答案

当连接达到其maxLifetime或连接在池中为idleTimeout保持空闲时,HikariCP将退出连接。

默认情况下,HikariCP管家每30秒运行一次。为了维持“minimumIdle”连接,它可能会添加新的连接或退出空闲连接(客户端不为idleTimeout millis借用)。

您必须将maxLifetime设置为比(mysql)wait_timeout少几分钟,以避免断开的连接/异常。

当客户尝试借用连接时,HikariCP可能会在管家中添加新的连接。因此它可能不会在退出连接后立即添加连接。

关于HikariCP:具有固定大小的池的maxLifetime和idleTimeout,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34594307/

10-12 04:57