【问题标题】:PostgreSQL connections still idle after close in JDBC在 JDBC 中关闭后 PostgreSQL 连接仍然空闲
【发布时间】:2020-12-31 08:34:27
【问题描述】:

我是 SpringBoot 新手。

我有一个 Spring Boot 应用程序,我使用的数据库是 PostgreSQL,我使用的是 JdbcTemplate,我有 2 个数据源连接。 该代码工作正常,但我观察到在服务器状态仪表板的 PostgreSQL pgAdmin 中,它显示空闲模式下的连接池(比如 10 连接)。 虽然早些时候我使用单个数据源,但我观察到了同样的事情,但我通过在 application.properties 文件中设置一些属性来解决它。 例如:

         spring.datasource.hikari.minimum-idle=somevalue

         spring.datasource.hikari.idle-timeout=somevalue

如何使用多个数据源实现相同的目标。

属性文件

spring.datasource.jdbcUrl=jdbc:postgresql://localhost:5432/stsdemo
spring.datasource.username=postgres
spring.datasource.password=********
spring.datasource.driver-class-name=org.postgresql.Driver


spring.seconddatasource.jdbcUrl=jdbc:postgresql://localhost:5432/postgres
spring.seconddatasource.username=postgres
spring.seconddatasource.password=********
spring.seconddatasource.driver-class-name=org.postgresql.Driver

数据库配置

@Configuration
public class DbConfig {

    @Bean(name="db1")
     @Primary
    @ConfigurationProperties(prefix="spring.datasource")
    public DataSource firstDatasource()
    {
         return DataSourceBuilder.create().build();
    }
    
    
     @Bean(name = "jdbcTemplate1")
     public JdbcTemplate jdbcTemplate1(@Qualifier("db1") DataSource ds) {
      return new JdbcTemplate(ds);
     }
     
     @Bean(name="db2")
     @ConfigurationProperties(prefix="spring.seconddatasource")
     public DataSource secondDatasource()
     {
         return DataSourceBuilder.create().build();
     }
    
     @Bean(name="jdbcTemplate2")
     public JdbcTemplate jdbcTemplate2(@Qualifier("db2") DataSource ds)
     {
         return new JdbcTemplate(ds);
     }
}

【问题讨论】:

    标签: postgresql spring-boot hikaricp


    【解决方案1】:

    这是意料之中的。

    “关闭”从 am pool 获得的连接(即调用close())只会将其返回到池中。池不会立即关闭与数据库的物理连接以避免代价高昂的重新连接(这是使用连接池的重点)

    “空闲”连接在 Postgres 中也不是真正的问题。

    如果您的连接长时间处于“事务空闲”状态 - 这将是一个问题。

    【讨论】:

      猜你喜欢
      • 2012-02-20
      • 1970-01-01
      • 2012-09-05
      • 1970-01-01
      • 1970-01-01
      • 2017-10-31
      • 2023-03-24
      • 1970-01-01
      • 2014-08-03
      相关资源
      最近更新 更多