繁体   English   中英

Hikari 池连接何时工作? - 弹簧/弹簧靴

[英]When does a Hikari pool connections work? - spring/spring boot

我对 Hikari 或任何数据库池概念有以下疑问。

  1. 什么时候创建连接池? 假设如果我提到 spring.datasource.hikari.maximum-pool-size=50 会创建 50 个数据库实例吗?

  2. 默认情况下,spring 适用于单吨类的范围,如何创建 50 个实例?

提前致谢!

Connection pooling有助于减少每次遇到数据库调用时创建数据库连接的次数。

Pool不过是一组连接(理想情况下是活动的)(就像我们有thread pool一样),当请求时将返回一个活动连接(或为第一个数据库请求创建一个),这里的instance将是一个不合适的词!

要回答您问题的第一部分,它会在应用程序启动期间在遇到spring.datasource.hikari...属性时进行初始化。

下面的链接很好地解释了这个概念

https://coderstea.in/post/best-practices/jdbc-connection-pooling-explained-with-hikaricp/

1:创建第一个连接时会创建一个连接池。 例如,当执行第一个 SQL 时。 {@link com.zaxxer.hikari.HikariDataSource#getConnection()}

这是我的情况,可能根据您使用的 ORM 有所不同。

连接实例将由连接池创建。 {@link com.zaxxer.hikari.pool.HikariPool#poolEntryCreator} {@link com.zaxxer.hikari.pool.HikariPool#postFillPoolEntryCreator}

“spring.datasource.hikari.maximum-pool-size=50”表示连接池不会创建超过50个连接实例。所以它是连接池中连接实例数的限制。

2:Spring Bean 默认为 singleton。 但是连接池中的连接实例不是“spring bean”,它们是从“new PoolEntry”创建的。 {@link com.zaxxer.hikari.pool.HikariPool#createPoolEntry}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM