我对Hikari或任何数据库池的概念有以下的疑问。
假设我提到了spring.datasource.hikari.maximum-pool-size=50
它会创建50个数据库实例吗?
默认情况下,
发布于 2022-08-24 07:40:54
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是单例的。但是连接池中的连接实例不是"spring“,它们是从”新PoolEntry“创建的。{@link com.zaxxer.hikari.pool.HikariPool#createPoolEntry}
发布于 2022-08-24 05:49:13
Connection pooling
帮助减少每次遇到数据库调用时创建数据库连接的次数。
Pool
只是一组连接(理想情况下是活动的)(就像我们有thread pool
一样),当请求将返回一个活动连接(或者为第一个数据库请求创建一个连接)时,instance
将是一个不合适的词!
要回答问题的第一部分,当遇到该spring.datasource.hikari...
属性时,将在应用程序启动期间初始化该属性。
下面链接中的很好地解释了这个概念,
https://coderstea.in/post/best-practices/jdbc-connection-pooling-explained-with-hikaricp/
https://stackoverflow.com/questions/73467750
复制相似问题