R2DBC 如何实现事务处理。
据我所知,JDBC 对一个事务使用一个连接。因此,在 Spring MVC 中,我们有以下映射:1 个请求:1 个线程:1 个事务:1 个连接。
Webflux 与 R2DBC 的映射是什么? Webflux 是响应式的,所以当我们打开一个事务时,它是否使用一个连接直到事务结束?如果是这样,那么事务类似于阻塞操作,因为当事务处于事件状态时,没有其他事务可以重用 Spring Webflux 中的连接。
假设我们在 R2DBC 中定义了 10 个连接,10 个 Webflux 请求打开了 10 个长事务。以下所有 Webflux 请求是否会等待这 10 个事务之一的结束,或者多个 Webflux 请求(带事务)是否可以并行使用一个连接?
最佳答案
R2DBC 仅支持每个连接一个事务。主要原因——据我所知——是很多数据库系统只支持每个连接一个事务,因此在单个连接上多路复用事务是不可能的。
关于spring-webflux - 连接重用和事务(关系),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64729022/