Spring Boot连接池配置的最佳实践

时间:2017-12-04 12:53:17

标签: java spring spring-boot connection-pooling hikaricp

我正在为Spring Boot应用程序和Postgres DB配置JDBC连接池以使用HikariCP连接池并尝试查找配置设置的最佳实践,遗憾的是网络中此主题的信息不多。

我正在为不同的设置准备我自己的性能测试,但是会感激任何帮助。应用程序节点

的平均吞吐量约为<20> req / sec

我对这些属性的最佳值最感兴趣:

    minimumIdle: ?
    maximumPoolSize: ?
    idleTimeout: ?
    maxLifetime: ?
    connectionTimeout: ?

特别高兴知道maximumPoolSize的最佳价值 有很多其他可用于连接池设置的选项,我们希望了解它们对应用程序性能的影响。

1 个答案:

答案 0 :(得分:4)

@ aliaksei-stadnik 20 req / sec,在宏观计划中,相当低。所以,我不会过分担心游泳池调整;更重要的是专注于查询性能。查询时间越短,使用较少数量的连接就可以处理的请求越多。

我们始终建议将HikariCP作为固定大小的池运行以获得最佳性能(保留 minimumIdle idleTimeout 未设置)。 maximumPoolSize 可能是您需要调整的密钥编号,并且如上面引用的链接所示,它主要取决于 数据库服务器所具有的CPU核心数。< / p>

平均查询时间为2ms,即使是单个连接也可以处理~500 req / sec,平均查询时间为10ms,每个连接可以产生~100 req / sec。但是,以单个请求为代价,可能需要等待一秒钟才能得到服务。在这种情况下,其他连接可用于减少请求的排队时间。