首页 > 解决方案 > 模块化单体架构带来 MSDTC 问题

问题描述

我正在努力将用 .net/c# 编写的大型 spagetti-syle 系统分解成更小的部分。第一步是将应用程序分解为组件(使用自己的存储的单独项目中的 c# 类),每个组件都在自己的数据库上工作,或者至少在 MS SQL Server 2016 数据库中自己的架构上工作。每个组件都使用自己的连接字符串(不同的用户名)。

当一个组件调用另一个组件时(例如,发票组件需要向仓库组件询问一些数据),我们会立即升级到 MSDTC,这是我试图避免的。我认为问题在于多个连接字符串(事务范围抑制没有帮助)。但是我希望组件使用不同的连接字符串,并且我认为其他组件不应该知道其他组件正在使用什么连接字符串/数据库等。

有没有办法让组件具有不同的连接字符串而不升级到 MSDTC?我想要实现的主要目标是模块之间的关注点分离..

编辑:我不想做跨组件交易。在这种情况下我不需要交易。

标签: c#sql-servermodularitymsdtc

解决方案


推荐阅读