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

Ali*_*nik 3 java spring connection-pooling spring-boot hikaricp

我正在为Spring Boot应用程序和Postgres DB配置JDBC连接池,以使用HikariCP连接池,并试图找到配置设置的最佳实践,不幸的是,网络上没有关于此主题的太多信息。

我正在为不同的设置准备自己的性能测试,但是希望对您有所帮助。应用程序节点的平均吞吐量约为20 req / sec

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

    minimumIdle: ?
    maximumPoolSize: ?
    idleTimeout: ?
    maxLifetime: ?
    connectionTimeout: ?
Run Code Online (Sandbox Code Playgroud)

知道最适合的值特别好maximumPoolSize 。连接池设置还有许多其他可用的选项,不胜感激关于它们对应用程序性能的影响的任何建议。

bre*_*ttw 6

@ aliaksei-stadnik 20请求/秒,在总体方案中,相当低。因此,我不会过于担心池调整;更重要的是要专注于查询性能。查询时间越短,连接数量越少,您可以处理的请求越多。

我们始终建议将HikariCP作为固定大小的池运行,以实现最佳性能(不设置minimumIdleidleTimeout)。该maximumPoolSize可能是你需要调整的关键号码,如上面所引用的链接说,这取决于主要在CPU内核的数量,你的数据库服务器。

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