【问题标题】:Unable to set HikariCP max-pool-size无法设置 HikariCP 最大池大小
【发布时间】:2018-11-30 11:44:17
【问题描述】:

我正在使用 Spring Boot 2.0.3 版本。我想增加 HikariCP 的最大池大小,默认为 10。

我尝试用

applicaiton.properties 中更改它

spring.datasource.hikari.maximum-pool-size=200

但它不起作用,因为在日志中它仍然显示最大池大小为 10。

我想改变的原因是因为我在分阶段达到了这个限制,我不知道是什么原因造成的。

【问题讨论】:

  • 您是如何创建DataSource 的?您是允许 Spring Boot 进行设置还是覆盖它?
  • 你可以试试 spring.datasource.maximumPoolSize=200
  • @KarolDowbecki 哦,是的,我是。对不起,我完全忘记了。非常感谢。现在它的工作。
  • @Lokesh 更新了我的答案。

标签: spring-boot hikaricp


【解决方案1】:

我最近遇到了类似的问题(Spring Boot v2.1.3)。在这里发布它以防人们遇到相同的情况。

长话短说:如果您使用@ConfigurationProperties 初始化DataSource,那么这些属性似乎不需要hikari 前缀为maximum-pool-size,除非我遗漏了什么.因此,如果您使用 @ConfigurationProperties(prefix = "spring.datasource")spring.datasource.maximum-pool-size 应该可以工作。

详情:在我的例子中,我使用org.springframework.boot.jdbc.DataSourceBuilder 自己初始化DataSource,以便以后可以在org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean 中使用它:

@Bean
@Primary
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource primaryDataSource()
{
    return DataSourceBuilder.create().build();
}

在这种情况下,取自 Common App Properties section in Spring Boot doc 的属性 spring.datasource.hikari.maximum-pool-size 没有帮助。 suggested above maximumPoolSize 也没有。

所以我去调试了 Spring Boot 代码,它把我带到了 org.springframework.boot.context.properties.bind.JavaBeanBinder 和它的方法 bindHikariDataSource setter setMaximumPoolSize 的属性名称值为“maximum-pool-size”,所以为了测试,我将我的属性重命名为 spring.datasource.maximum-pool-size,它终于奏效了。

希望对您有所帮助。如果我错过了什么或走错了路,请在 cmets 中告诉我。谢谢!

【讨论】:

  • 感谢您的详细分析。它有效。
【解决方案2】:

根据HikariCP Github README 它是maximumPoolSize 所以尝试使用:

spring.datasource.hikari.maximumPoolSize = 200

但这只有在您允许 Spring Boot 创建 DataSource 时才有效。如果你自己创建了DataSource,Spring Boot 属性没有任何作用。

请注意,200 是一个非常高的值,可能会对您的数据库产生负面影响,因为每个物理连接都需要服务器资源。在大多数情况下,较低的值会产生更好的性能,请参阅HikariCP wiki: About Pool Sizing

【讨论】:

  • 它没有用。它仍然显示 10。我知道 100 的价值非常高,但我不知道是什么导致池轻松达到该限制。每个查询都会创建一个新连接吗?
  • @Lokesh 不,查询通常绑定到逻辑连接而不是物理连接。可能是您的代码中存在连接泄漏。如果您从DataSource 检索它们,则需要关闭连接,以便它们可以返回到池中。
猜你喜欢
  • 2017-08-25
  • 2020-10-17
  • 2016-03-21
  • 1970-01-01
  • 2012-04-30
  • 1970-01-01
  • 1970-01-01
  • 2012-06-19
相关资源
最近更新 更多