.net 我如何编程“a”;分布式事务";?

.net 我如何编程“a”;分布式事务";?,.net,distributed-transactions,.net,Distributed Transactions,在过去,我所有的数据库需求都是由sqlite解决的。现在设计一个可能很大的数据库,我研究了“分布式事务”。我该如何编程?我发现一些结果解释了什么是分布式事务,但没有解释如何编程 我知道在代码中我有一些事务,我可能希望将它们批处理到一个更大的事务中。我使用.NET。我如何创建一个用户,其中他的PK位于一个数据库中,而他的用户信息(如姓名和设置)位于另一个数据库中。这可能是一个单独的问题,但如果我有两个功能。一个更新媒体描述,另一个更新可能位于同一服务器或单独服务器上的内容。如何嵌套这些事务并仅在最

在过去,我所有的数据库需求都是由sqlite解决的。现在设计一个可能很大的数据库,我研究了“分布式事务”。我该如何编程?我发现一些结果解释了什么是分布式事务,但没有解释如何编程


我知道在代码中我有一些事务,我可能希望将它们批处理到一个更大的事务中。我使用.NET。我如何创建一个用户,其中他的PK位于一个数据库中,而他的用户信息(如姓名和设置)位于另一个数据库中。这可能是一个单独的问题,但如果我有两个功能。一个更新媒体描述,另一个更新可能位于同一服务器或单独服务器上的内容。如何嵌套这些事务并仅在最后提交?

您描述的方法可能会导致性能问题。每个请求都需要一个涉及多个数据库的事务。这是昂贵的。例如,如果您需要在同一事务中包含web服务调用和DB请求,那么分布式事务可能是一个很好的解决方案

如果<>强> W/<强>需要可扩展性来提高重负载下的性能,您可以考虑<强>群集< /强>。您将运行简单(非分布式)事务,而不是在不同的服务器之间分发单个用例的一部分。您还将受益于可伸缩性,因为不同的请求将由不同的服务器处理

关于聚类的主要目的及其在各种情况下的适用性,存在不同的观点。我认为这取决于领域,需要仔细分析。有关群集的一些链接: 尼尔·麦卡利斯特, (过时), 从维基百科,和-为一般知识

我建议您看看MSDN的Martin Fowler(主要讨论分布式计算,但也适用于事务),以及以下两种观点:


.

有关该概念的介绍,请参阅


要在.NET中使用,请查看名称空间,尤其是类。这将使您能够使用。如果你看看这个项目,你就会看到他们是如何将DTC与SQLite集成在一起的。

这并不能回答你的问题,但我希望这会很有用,可以防止你犯严重的错误。多亏了匿名向下投票者,我发现我最初的回答包含了一个错误的链接。现在编辑并添加了更多信息。警告:我提供了不同的链接,从不同的角度提供了一般信息。如果您决定使用集群,我相信,您会发现更多关于如何在您的情况下做到最好的具体信息。您是说我现在可以用sqlite编写分布式事务测试吗?如果是这样的话,我很可能会这样做。据我所知,
System.Data.SQLite
支持自动DTC登记。所以,是的。