如何解决连接重用和事务关系
R2DBC如何实现事务处理。
据我所知,JDBC对一个事务使用一个连接。因此,在Spring MVC中,我们具有以下映射:1请求:1线程:1事务:1连接。
带R2DBC的Webflux中的映射是什么? Webflux是被动的,因此当我们打开一个事务时,它会使用一个连接直到事务结束吗?如果是这样,则事务就像是阻塞操作,因为在事务处于活动状态时,没有其他事务可以重用Spring Webflux中的连接。
比方说,我们在R2DBC中定义了10个连接,而10个Webflux请求打开了10个长事务。以下所有Webflux请求是否会等待这10个事务之一结束,还是多个Webflux请求(带有事务)可以并行使用一个连接?
解决方法
R2DBC每个连接仅支持单个事务。据我所知,主要原因是许多数据库系统每个连接仅支持单个事务,因此无法在单个连接上多路复用事务。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。