如何限制 hikaricp 中的初始池大小?

mem*_*und 5 java spring spring-boot hikaricp

我曾经有一个tomcat连接池配置限制初始池大小:spring.datasource.tomcat.initial-size=2

现在切换到hikaricp:限制最初启动的连接相当于什么?

旁注:spring.datasource.hikari.minimumIdle不阻止在启动时初始化 10 个连接。

NiV*_*VeR 10

您可以使用 Spring Boot 中提供的这些属性:

spring.datasource.hikari.minimumIdle=5
spring.datasource.hikari.maximumPoolSize=8
Run Code Online (Sandbox Code Playgroud)

进而:

spring.datasource.hikari.idleTimeout=120000
Run Code Online (Sandbox Code Playgroud)

限制空闲连接的寿命,但 hikari 不会为您提供初始连接数的此类属性。


pri*_*kar 6

使用 Spring Boot,在 application.properties 中设置这些属性。

spring.jpa.hibernate.hikari.minimumIdle=5
spring.datasource.hikari.maximum-pool-size=10
Run Code Online (Sandbox Code Playgroud)


mem*_*und 2

我刚刚发现这与我的多个数据源的配置有关。

一般来说,该属性spring.datasource.hikari.minimum-idle=2会自动正确限制启动池大小!

但如果有多个数据源,则缺少配置属性,如下所示:

    @Bean
    @ConfigurationProperties("spring.datasource.secondary.hikari")
    public DataSource secondatyDataSource() {
        return ...
    }
Run Code Online (Sandbox Code Playgroud)

在我刚刚拥有之前"spring.datasource.secondary",在我的财产旁边"spring.datasource.secondary.hikari.*"没有被考虑在内。

https://docs.spring.io/spring-boot/docs/current/reference/html/howto-data-access.html中记录的这可能是错误的