【问题标题】:Spring Boot JPA PostgreSQL Retry PolicySpring Boot JPA PostgreSQL 重试策略
【发布时间】:2019-08-19 02:40:17
【问题描述】:

我有一个 spring-boot 应用程序,它有一个 POST REST API,实习生使用 JPA 和 Hikari 将数据插入 Postgresql。由于 Post 请求数量巨大,我计划在 JPA 内置方法上实现 Spring Retry,例如 save()、saveAll()、findAll() 等,

我的问题是,当数据库超时/连接失败时重试是个好主意吗? (要么) spring-boot 或 JPA 已经这样做了吗?如果是这样,请分享提到这一点的参考资料。

【问题讨论】:

标签: java spring-boot jpa hikaricp


【解决方案1】:

为您提供健康连接的责任在于不断监控可用连接的连接池。在将连接移交给您之前,HikariCP 使用测试查询或 API 测试连接(如果 jdbc 驱动程序符合 JDBC4)。更多信息herehere

但是,一旦连接被移交,并且在执行查询时出现网络问题,客户端将获得一个 Execption。那么重试是个好主意吗? 我认为对于读取查询这应该没问题,但对于更改数据的查询可能不好。例如,您的插入成功,但在客户端收到事务提交的确认之前,发生了网络问题。所以现在数据被插入了。如果你再试一次,你最终会插入两次。

【讨论】:

  • 明白了。感谢您的回复
猜你喜欢
  • 1970-01-01
  • 2017-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-07
  • 2021-01-23
  • 2021-03-01
  • 2021-10-28
相关资源
最近更新 更多