2 具有不同数据源配置的 Hikari CP?

Posted

技术标签:

【中文标题】2 具有不同数据源配置的 Hikari CP?【英文标题】:2 Hikari CPs with different datasource configurations? 【发布时间】:2018-06-17 15:03:44 【问题描述】:

有没有人在 Spring Boot 应用程序中成功配置了两个具有不同数据源的 hikari 连接池?我该如何使用 application.properties?

【问题讨论】:

***.com/questions/27614301/…的可能重复 Spring Boot Configure and Use Two DataSources的可能重复 【参考方案1】:

我知道很久以前有人问过这个问题,但我认为它可能对其他人有所帮助。 另外,我不认为上面提到的“可能重复”回答了这个问题。

我正在使用带有 maven 的 spring boot 2.0.4。 而不是像使用一个数据库那样为 hikary 提供专用范围,例如

  datasource:
      hikari:
            connection-test-query: SELECT 1 FROM DUAL
            minimum-idle: 1
            maximum-pool-size: 2
            pool-name: some-pool-name

您可以采用您想要的设置并将其直接放在 db 范围内,例如:

spring:
    datasource:
        db1:
            type: com.zaxxer.hikari.HikariDataSource
            maximum-pool-size: 2
            minimum-idle: 1
            pool-name: db1-pool
            connection-test-query: SELECT 1 FROM DUAL
            jdbc-url: jdbc:mysql://$host1:$port1/$db1
            username: $db1-user
            password: $db1-pass
            driver-class-name: com.mysql.cj.jdbc.Driver
        db2:
            type: com.zaxxer.hikari.HikariDataSource
            maximum-pool-size: 2
            minimum-idle: 1
            pool-name: db2-pool
            connection-test-query: SELECT 1 FROM DUAL
            jdbc-url: jdbc:mysql://$host2:$port2/$db2
            username: $db2-user
            password: $db2-pass
            driver-class-name: com.mysql.cj.jdbc.Driver

如您所见,池名称和大小设置在该范围内。

然后在一个java配置文件中:

@Configuration
public class AppConfiguration 

....

    @Bean("db1")
    @ConfigurationProperties(prefix = "spring.datasource.db1")
    public DataSource firstDataSource() 
        return DataSourceBuilder.create().build();
    

    @Bean("db2")
    @ConfigurationProperties(prefix = "spring.datasource.db1")
    public DataSource secondDataSource() 
        return DataSourceBuilder.create().build();
    

【讨论】:

但是为什么hikari前缀突然不见了?

以上是关于2 具有不同数据源配置的 Hikari CP?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring Boot 2.0 上将默认 hikari cp 替换为 tomcat 池

如何在 Spring(4) 上下文中为 HSQL 配置 Hikari CP?

使用Hikari CP检测到明显的连接泄漏

Hikari 数据源参数配置描述

mssql-jdbc MS SQL Server JDBC 驱动程序准备好的语句缓存性能问题与 Hikari CP

Hikari CP 检测到明显的连接泄漏