【问题标题】:Connection-reuse and transactions (relationship)连接重用和事务(关系)
【发布时间】:2021-02-20 00:53:40
【问题描述】:

R2DBC 如何实现事务处理。

据我所知,JDBC 为一个事务使用一个连接。所以在 Spring MVC 中我们有以下映射:1 个请求:1 个线程:1 个事务:1 个连接。

Webflux 与 R2DBC 的映射是什么? Webflux 是响应式的,所以当我们打开一个事务时,它是否使用一个连接直到事务结束?如果是这样,那么事务类似于阻塞操作,因为当事务处于活动状态时,没有其他事务可以重用 Spring Webflux 中的连接。

假设我们在 R2DBC 中定义了 10 个连接,并且 10 个 Webflux 请求打开了 10 个长事务。以下所有 Webflux 请求会等待这 10 个事务之一的结束,还是多个 Webflux 请求(带有事务)可以并行使用单个连接?

【问题讨论】:

    标签: spring-webflux spring-data-r2dbc r2dbc r2dbc-postgresql


    【解决方案1】:

    R2DBC 每个连接只支持一个事务。据我所知,主要原因是许多数据库系统只支持每个连接的单个事务,因此不可能在单个连接上多路复用事务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多