欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

.NETCore不支持分布式事务

时间:2023-06-06
文章目录

.NET Core 不支持分布式事务

事实问题计划影响扩展阅读 .NET Core 不支持分布式事务 事实

.NET framework支持分布式事务(Distributed Transactions),但是很遗憾(尴尬)的是.NET Core(包括.NET 5和.NET 6)都还不支持分布式事务。

问题

这个问题从.NET Core发布后就一直存在,可见在跨平台的分布式事务支持是一件非常复杂的事情。参见:

https://github.com/dotnet/runtime/issues/19318https://github.com/dotnet/runtime/issues/715 计划

现在有一个好消息是在未来的.NET 7版本中,已经计划优先在Windows平台上支持分布式事务,然后再在跨平台上支持分布式事务。

参见:

​ https://docs.microsoft.com/zh-cn/ef/core/what-is-new/ef-core-7.0/plan#distributed-transactions 影响

在微服务中,可以通过良好的微服务划分和事务边界(transaction boundary)来避免处理跨微服务的分布式事务的问题。

如果不得不处理,也可以采用Saga模式。

事实上,2PC (two-phase commit) 并不是微服务事务问题的好方案。

扩展阅读

在Data Consistency in Microservices Architecture (Grygoriy Gonchar) 中提出了按以下优先级处理分布式事务问题:

Consistency by design

a、Accept inconsistency when possible

b、Make operations reversible and idempotent

Change single datasource at the time

a、Change-first (Change Data Capture, CDC)

b、Event-first (Event-drive Architecture, EDA or CQRS)

Sagas - compensate & reconcile

a、Orchestration

b、Choreography

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。