【发布时间】:2015-01-01 08:00:10
【问题描述】:
我在 jpa 上使用 spring boot 和 hibernate 和 tomcat 连接池。你能帮我理解spring在事务中如何使用数据库连接吗?例如考虑以下场景:
- 我们有 2 个连接的数据库连接池。
- Spring 启动事务,即调用带有 @Transactional 注释的方法。
- 此方法执行数据库更新
- 调用外部服务
- 当收到来自外部服务的响应时,它会更新 DB 并返回。
- Spring 提交事务
假设外部服务(第 4 步)需要 1 分钟才能完成,那么 DB 池中有多少个 DB 连接可用?假设 spring 一直保持 DB 连接直到事务完成,在此期间收到的任何请求都只有 1 个 DB 连接可用,如果我们收到超过 1 个请求,他们将不得不等待 DB 连接。
请确认我的理解,如果正确,建议我如何在高交易量系统中处理这种情况。
谢谢
【问题讨论】:
标签: java spring hibernate jpa transactions