使两个 java JDBC 数据源使用单个支持数据源作为源

问题描述 投票:0回答:0

我想创建两个独立的 JDBC 数据源(又名连接池),它们将重新使用类似于下图的连接。

                .------.
                '------'
                | Data |
                | base |
                '------'
                   ^
                   |
            +------+-------+
            |              |
            |  Connection  |
       +--->|  Pool Main   |<----+
       |    |              |     |
       |    +--------------+     |
+------+----------+   +----------+--------+
|Connection Pool A|   | Connection Pool B |
+-----------------+   +-------------------+
         ^                       ^
         |                       |
 +-------+------+       +--------+-----+
 | App Module A |       | App Module B |
 +--------------+       +--------------+

想法是让父连接池有 10 个连接限制,每个子源有 8 个连接限制。

所以即使 App 模块 A 使用所有 8 个连接,模块 B 也不会饿死并且至少有两个连接。

所以改写这个问题:我想以这种方式表示单个连接池,应用程序的一部分可以至少有 N 个连接,总共 M 个可用连接。为应用程序的每个部分保留这 N 个连接。

这对任何现有的图书馆来说都是可能的吗,例如HikariCP

P.S. 这是 spring boot 应用程序,但这应该无关紧要,因为 JDBC 数据源可以存在于 spring 之外。但也许 Spring 对于这个用例有一些技巧。

java spring-boot jdbc datasource connection-pooling
© www.soinside.com 2019 - 2024. All rights reserved.