解决方案之高并发插入造成的Unable to acquire JDBC Connection异常

1.1 Bug 现场

这篇博文分享一个研发过程中发现的一个坑。

当使用Spring Data JPA 进行高频率的插入操作的时候, 可能会出现如下报错信息:

Unable to acquire JDBC Connection

1.2 解决方案

搜罗网上解决方案和自己摸索发现解决方案大致分为如下几种。

1.2.1 解决方案一

  • 调大最大连接池的数量
spring.datasource.hikari.maximum-pool-size: 10
  • 调节超时时间
spring.datasource.hikari.connection-timeout: 0

1.2.2 解决方案二

  • 将业务数据分批处理,不要一条一条的插入。

1.2.3 解决方案三

  • 修改Spring Data JPA的调用方法

将原来的代码

this.worksPicJpaRepository.save(cusotmerEntity);

修改成

this.worksPicJpaRepository.saveAndFlush(cusotmerEntity);
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐