限制jdbc连接池的固定数量

限制jdbc连接池的固定数量,jdbc,hikaricp,micronaut,micronaut-data,tomcat-jdbc,Jdbc,Hikaricp,Micronaut,Micronaut Data,Tomcat Jdbc,嗨,我将micronaut数据与各种jdbc连接池一起使用。 我先吃了hikari,还试了tomcat 我假设将数据源设置为最大池大小:10将导致最多10个打开的连接。 但似乎有很多开始和结束的过程。加上大量的o请求,它使用的连接远不止10个。问题是,azure postgresql总共只允许100个连接 目前,我运行了7个应用程序访问该数据库。我预计最多会有70个连接。但事实上,情况远不止如此 我还尝试使用tomcat jdbc池,他的行为有点不同。但也使用了10个以上的连接。我还使用java

嗨,我将micronaut数据与各种jdbc连接池一起使用。 我先吃了hikari,还试了tomcat

我假设将数据源设置为
最大池大小:10
将导致最多10个打开的连接。 但似乎有很多开始和结束的过程。加上大量的o请求,它使用的连接远不止10个。问题是,azure postgresql总共只允许100个连接

目前,我运行了7个应用程序访问该数据库。我预计最多会有70个连接。但事实上,情况远不止如此

我还尝试使用tomcat jdbc池,他的行为有点不同。但也使用了10个以上的连接。我还使用java探查器进行了检查,发现有时每秒最多有100个打开/关闭连接事件

除了使用第二个数据库之外,任何关于如何在这种情况下采取行动的建议。 我希望池能够缓冲这些调用,特别是因为它们来自卡夫卡主题。 但是,情况似乎有所不同

---编辑添加hikari日志

这是hikari的日志输出

2020-12-11 11:59:40,983 [main] DEBUG com.zaxxer.hikari.HikariConfig - Driver class org.postgresql.Driver found in Thread context class loader jdk.internal.loader.ClassLoaders$AppClassLoader@2c13da15
2020-12-11 11:59:40,993 [main] DEBUG com.zaxxer.hikari.HikariConfig - HikariPool-1 - configuration:
2020-12-11 11:59:40,999 [main] DEBUG com.zaxxer.hikari.HikariConfig - allowPoolSuspension.............false
2020-12-11 11:59:41,000 [main] DEBUG com.zaxxer.hikari.HikariConfig - autoCommit......................true
2020-12-11 11:59:41,000 [main] DEBUG com.zaxxer.hikari.HikariConfig - catalog.........................none
2020-12-11 11:59:41,001 [main] DEBUG com.zaxxer.hikari.HikariConfig - connectionInitSql...............none
2020-12-11 11:59:41,001 [main] DEBUG com.zaxxer.hikari.HikariConfig - connectionTestQuery............."SELECT 1;"
2020-12-11 11:59:41,001 [main] DEBUG com.zaxxer.hikari.HikariConfig - connectionTimeout...............30000
2020-12-11 11:59:41,002 [main] DEBUG com.zaxxer.hikari.HikariConfig - dataSource......................none
2020-12-11 11:59:41,002 [main] DEBUG com.zaxxer.hikari.HikariConfig - dataSourceClassName.............none
2020-12-11 11:59:41,002 [main] DEBUG com.zaxxer.hikari.HikariConfig - dataSourceJNDI..................none
2020-12-11 11:59:41,003 [main] DEBUG com.zaxxer.hikari.HikariConfig - dataSourceProperties............{password=<masked>}
2020-12-11 11:59:41,004 [main] DEBUG com.zaxxer.hikari.HikariConfig - driverClassName................."org.postgresql.Driver"
2020-12-11 11:59:41,004 [main] DEBUG com.zaxxer.hikari.HikariConfig - exceptionOverrideClassName......none
2020-12-11 11:59:41,004 [main] DEBUG com.zaxxer.hikari.HikariConfig - healthCheckProperties...........{}
2020-12-11 11:59:41,005 [main] DEBUG com.zaxxer.hikari.HikariConfig - healthCheckRegistry.............none
2020-12-11 11:59:41,005 [main] DEBUG com.zaxxer.hikari.HikariConfig - idleTimeout.....................600000
2020-12-11 11:59:41,005 [main] DEBUG com.zaxxer.hikari.HikariConfig - initializationFailTimeout.......1
2020-12-11 11:59:41,006 [main] DEBUG com.zaxxer.hikari.HikariConfig - isolateInternalQueries..........false
2020-12-11 11:59:41,007 [main] DEBUG com.zaxxer.hikari.HikariConfig - jdbcUrl.........................jdbc:postgresql://URL:5432/postgres
2020-12-11 11:59:41,007 [main] DEBUG com.zaxxer.hikari.HikariConfig - leakDetectionThreshold..........0
2020-12-11 11:59:41,007 [main] DEBUG com.zaxxer.hikari.HikariConfig - maxLifetime.....................1800000
2020-12-11 11:59:41,008 [main] DEBUG com.zaxxer.hikari.HikariConfig - maximumPoolSize.................10
2020-12-11 11:59:41,008 [main] DEBUG com.zaxxer.hikari.HikariConfig - metricRegistry..................none
2020-12-11 11:59:41,008 [main] DEBUG com.zaxxer.hikari.HikariConfig - metricsTrackerFactory...........none
2020-12-11 11:59:41,009 [main] DEBUG com.zaxxer.hikari.HikariConfig - minimumIdle.....................10
2020-12-11 11:59:41,009 [main] DEBUG com.zaxxer.hikari.HikariConfig - password........................<masked>
2020-12-11 11:59:41,009 [main] DEBUG com.zaxxer.hikari.HikariConfig - poolName........................"HikariPool-1"
2020-12-11 11:59:41,010 [main] DEBUG com.zaxxer.hikari.HikariConfig - readOnly........................false
2020-12-11 11:59:41,010 [main] DEBUG com.zaxxer.hikari.HikariConfig - registerMbeans..................false
2020-12-11 11:59:41,011 [main] DEBUG com.zaxxer.hikari.HikariConfig - scheduledExecutor...............none
2020-12-11 11:59:41,011 [main] DEBUG com.zaxxer.hikari.HikariConfig - schema.........................."SCHEMA"
2020-12-11 11:59:41,011 [main] DEBUG com.zaxxer.hikari.HikariConfig - threadFactory...................internal
2020-12-11 11:59:41,011 [main] DEBUG com.zaxxer.hikari.HikariConfig - transactionIsolation............default
2020-12-11 11:59:41,012 [main] DEBUG com.zaxxer.hikari.HikariConfig - username........................"USERNAME"
2020-12-11 11:59:41,012 [main] DEBUG com.zaxxer.hikari.HikariConfig - validationTimeout...............5000
2020-12-11 11:59:40983[main]调试com.zaxxer.hikari.HikariConfig-在线程上下文类加载器jdk.internal.loader.ClassLoaders中找到驱动程序类org.postgresql.Driver$AppClassLoader@2c13da15
2020-12-11:59:40993[main]调试com.zaxxer.hikari.HikariConfig-hikaripol-1-配置:
2020-12-11 11:59:40999[main]调试com.zaxxer.hikari.HikariConfig-allowPoolSuspension……….错误
2020-12-11 11:59:41000[main]调试com.zaxxer.hikari.HikariConfig-自动提交正确
2020-12-11 11:59:41000[主要]调试com.zaxxer.hikari.HikariConfig-目录无
2020-12-11 11:59:41001[main]调试com.zaxxer.hikari.HikariConfig-connectionInitSql………..无
2020-12-11 11:59:41001[main]调试com.zaxxer.hikari.HikariConfig-connectionTestQuery………“选择1;”
2020-12-11 11:59:41001[主]调试com.zaxxer.hikari.HikariConfig-连接超时
2020-12-11 11:59:41002[主要]调试com.zaxxer.hikari.HikariConfig-数据源无
2020-12-11 11:59:41002[main]调试com.zaxxer.hikari.HikariConfig-数据源ClassName…………无
2020-12-11 11:59:41002[main]调试com.zaxxer.hikari.HikariConfig-dataSourceJNDI…………无
2020-12-11 11:59:41003[main]调试com.zaxxer.hikari.HikariConfig-dataSourceProperties………{password=}
2020-12-11 11:59:41004[main]调试com.zaxxer.hikari.HikariConfig-drivercassname…………..“org.postgresql.Driver”
2020-12-11 11:59:41004[main]调试com.zaxxer.hikari.HikariConfig-例外overrideclassname……无
2020-12-11 11:59:41004[main]调试com.zaxxer.hikari.HikariConfig-healthCheckProperties
2020-12-11 11:59:41005[main]调试com.zaxxer.hikari.HikariConfig-healthCheckRegistry…………无
2020-12-11:59:41005[main]调试com.zaxxer.hikari.HikariConfig-idleTimeout 600000
2020-12-11 11:59:41005[main]调试com.zaxxer.hikari.HikariConfig-初始化失败超时
2020-12-11 11:59:41006[main]调试com.zaxxer.hikari.HikariConfig-isolateInternalQueries……….错误
2020-12-11 11:59:41007[main]调试com.zaxxer.hikari.HikariConfig-jdbcUrlostgresql://URL:5432/postgres
2020-12-11 11:59:41007[主]调试com.zaxxer.hikari.HikariConfig-泄漏检测阈值
2020-12-11 11:59:41007[main]调试com.zaxxer.hikari.HikariConfig-maxlife 1800000
2020-12-11 11:59:41008[主要]调试com.zaxxer.hikari.HikariConfig-最大工具大小
2020-12-11 11:59:41008[main]调试com.zaxxer.hikari.HikariConfig-metricRegistry无
2020-12-11 11:59:41008[主要]调试com.zaxxer.hikari.HikariConfig-metricsTrackerFactory无
2020-12-11 11:59:41009[main]调试com.zaxxer.hikari.HikariConfig-minimumIdle
2020-12-11 11:59:41009[主]调试com.zaxxer.hikari.HikariConfig-密码。。。。。。。。。。。。。。。。。。。。。。。。
2020-12-11 11:59:41009[main]调试com.zaxxer.hikari.HikariConfig-poolName.“HikariPool-1”
2020-12-11 11:59:41010[main]调试com.zaxxer.hikari.HikariConfig-只读错误
2020-12-11 11:59:41010[main]调试com.zaxxer.hikari.HikariConfig-registerMbeans错误
2020-12-11 11:59:41011[main]调试com.zaxxer.hikari.HikariConfig-调度执行器………..无
2020-12-11 11:59:41011[main]调试com.zaxxer.hikari.HikariConfig-模式“模式”
2020-12-11 11:59:41011[main]调试com.zaxxer.hikari.HikariConfig-螺纹工厂内部
2020-12-11 11:59:41011[main]调试com.zaxxer.hikari.HikariConfig-事务处理………默认值
2020-12-11:59:41012[main]调试com.zaxxer.hikari.HikariConfig-用户名
2020-12-11 11:59:41012[main]调试com.zaxxer.hikari.HikariConfig-验证超时

我发现了错误——或者至少找到了解决问题的方法

在将一些数据保存到数据库中的同时,我还尝试更新缓存。 但由于Caffines loadingcache上的更改,每次保存也会导致对完全相同的数据对象实例进行get

我的猜测是由于引起麻烦的交易。
替换缓存后。使用缓存获取。替换一切正常。

我发现了错误,或者至少找到了解决问题的方法

在将一些数据保存到数据库中的同时,我还尝试更新缓存。 但由于Caffines loadingcache上的更改,每次保存也会导致对完全相同的数据对象实例进行get

我的猜测是由于引起麻烦的交易。 之后