DotNet.CAP,或是.NET唯一靠谱的开源分布式框架

简介: DotNet.CAP,或是.NET唯一靠谱的开源分布式框架

.NET5、容器化、K8S、分布式、微服务、DevOps、云原生,热门的技术名词很多,然而无论概念如何包装,落地的底层逻辑是不变的,分布式事务就是一个钉子户,任何分布式架构都避不开,又很难搞定,尤其在.NET Core下,几乎还没有成熟的解决方案。这里来为大家捋一捋分布式事务,尤其是在.NET Core下推荐落地方案。

本文包含以下内容,共1300字,阅读完大约需要3分钟:

1、什么是分布式事务

2、多种分布式事务解决方案

3、.NET Core分布式事务推荐

4、实战CAP分布式事务

1 什么是分布式事务

主流关系型数据库都支持数据库事务,能保障单数据库实例内的ACID,然而如果一次操作中涉及到多个数据库实例,就没那么简单了。比如拜振华(建行卡)要给川建国(工行卡)转账,就需要建设银行的数据库和工商银行的数据库同时成功或者同时失败才能确保有效性,然而这两家银行的数据库并不好同步协调,分布式下是无法保障的,这就诞生了分布式事务的问题。

所谓分布式事务,就是用于在分布式系统中保证不同节点之间的数据一致性。

2 分布式事务解决方案

随着分布式系统的流行,分布式事务的解决方案慢慢沉淀了4类解决方案:

1 两阶段提交(2PC) & 三阶段提交(3PC)方案

2 补偿事务TCC(Try-Confirm-Cancel)

3 本地消息表(异步确保))

4 Sagas 事务模型

关于这四类解决方案介绍的文章有很多,但并没有相关的实际代码或者是开源代码,所以算不上什么干货,如果大家关注细节理论分析,扫文末二维码可以找到一篇《1.4 w字,25 张图让你彻底掌握分布式事务原理》的文章,可以慢慢看。下面还是谈谈.NET Core落地的分布式事务。

image.png

3 .NET Core分布式事务推荐

在 .NET 领域,成熟的分布式事务解决方案没有几个,据我所知,有一些公司内部是有这种解决方案的,但是并未开源。下面给为大家推荐的,是微软MVP-Savorboard开源的.NET分布式事务框架CAP,支持.NET Framework、支持.NET Core,微软开源eShopOnContainer采纳的就是这个,其详细介绍在Github是上有介绍,下面列出一些特点,方便大家技术选型:

1 CAP 同时支持 RabbitMQ,Kafka 等消息队列

2 CAP 同时支持 SQL Server, MySql, PostgreSql 等数据库

3 CAP提供了可视化界面(Dashboard),实时监控全节点状况,同时支持中文和英文界面双语言

4 CAP 提供了丰富的接口可以供扩展,什么序列化了,自定义处理了,自定义发送了统统不在话下

5 CAP 基于MIT开源,你可以尽管拿去做二次开发。(记得保留MIT的License)

6 CAP具有优秀的消息处理能力,是最成熟的EventBus产品之一

image.png

如果这些还没有打动你,最后我要告诉你的是,该分布式方案已经被大量公司应用于产品项目,经受了电商、金融等高并发项目的真实验证的,我目前推动的一个微服务架构的电商项目,在千万级并发压测下,CAP是毫无问题的。

4 实战CAP分布式事务

分布式事务解决方案最重要的就是能经受生产环境的考验,理论分析再透彻,抵不上生产环境走一遭。使用CAP框架2年多,也走了很多弯路踩了很多坑,但最终该框架真正解决了千万并发微服务架构的分布式事务问题。本周(11月9号~15号)期间,我会在线分享基于.NET5微服务架构落地实操,对接CAP框架完成分布式事务,分享这几年踩过的坑,欢迎扫码关注学习!

相关文章
|
13天前
|
存储 监控 数据可视化
常见的分布式定时任务调度框架
分布式定时任务调度框架用于在分布式系统中管理和调度定时任务,确保任务按预定时间和频率执行。其核心概念包括Job(任务)、Trigger(触发器)、Executor(执行器)和Scheduler(调度器)。这类框架应具备任务管理、任务监控、良好的可扩展性和高可用性等功能。常用的Java生态中的分布式任务调度框架有Quartz Scheduler、ElasticJob和XXL-JOB。
227 66
|
7天前
|
数据采集 人工智能 分布式计算
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
阿里云推出的MaxFrame是链接大数据与AI的分布式Python计算框架,提供类似Pandas的操作接口和分布式处理能力。本文从部署、功能验证到实际场景全面评测MaxFrame,涵盖分布式Pandas操作、大语言模型数据预处理及企业级应用。结果显示,MaxFrame在处理大规模数据时性能显著提升,代码兼容性强,适合从数据清洗到训练数据生成的全链路场景...
22 5
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
|
11天前
|
区块链 C# Windows
PasteEx:一款.NET开源的Windows快捷粘贴神器
PasteEx:一款.NET开源的Windows快捷粘贴神器
39 17
|
11天前
|
XML C# 数据格式
一个.NET开源、免费、功能强大的 PDF 处理工具
一个.NET开源、免费、功能强大的 PDF 处理工具
|
11天前
|
开发框架 JavaScript 前端开发
精选2款.NET开源的博客系统
精选2款.NET开源的博客系统
|
12天前
|
网络协议 C#
3款.NET开源、功能强大的通讯调试工具,效率提升利器!
3款.NET开源、功能强大的通讯调试工具,效率提升利器!
36 10
|
11天前
|
C# UED
一个.NET开源、易于使用的屏幕录制工具
一个.NET开源、易于使用的屏幕录制工具
|
11天前
|
Web App开发 C# Windows
一款.NET开源的Windows资源管理器标签页工具
一款.NET开源的Windows资源管理器标签页工具
|
11天前
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
|
30天前
|
消息中间件 开发框架 监控
NET任务调度框架Hangfire使用指南
Hangfire 是一个用于 .NET 应用程序的开源任务调度框架,支持长时间运行任务、定时任务等。通过简单的安装配置,即可将任务从主线程分离,提升应用性能。支持多种数据库,提供丰富的任务类型如立即执行、延迟执行和周期性任务,并有可视化管理界面 Hangfire Dashboard。还支持安全性配置及扩展插件,如 Hangfire.HttpJob,适合各种复杂场景下的任务调度需求。
54 1
NET任务调度框架Hangfire使用指南
下一篇
开通oss服务