前言
在分布式系统中,由于各个系统服务之间的独立性和网络通信的不确定性,要确保跨系统的事务操作的最终一致性是一项重大的挑战。本文介绍一个基于 .NET Standard 的 C# 库:CAP。
CAP 项目介绍
CAP 是一个基于 .NET Standard 的 C# 库,它是一种处理分布式事务的解决方案,同时具有 EventBus 的功能。它具有轻量级、易使用、高性能等特点。CAP 是一个 EventBus,同时也是在微服务或者 SOA 系统中解决分布式事务问题的一个框架。它有助于创建可扩展、可靠并且易于更改的微服务系统。
什么是 EventBus?
事件总线是一种机制,它允许不同的组件彼此通信而不彼此了解。组件可以将事件发送到 Eventbus,而无需知道是谁来接听或有多少其他人来接听。组件也可以侦听 Eventbus 上的事件,而无需知道谁发送了事件。这样,组件可以相互通信而无需相互依赖。同样,很容易替换一个组件。只要新组件了解正在发送和接收的事件,其他组件就永远不会知道。
CAP 架构预览

CAP 支持的存储
SQL Server、MySQL、PostgreSQL、MongoDB、In-Memory Storage。
CAP 支持以下几种运输方式
RabbitMQ、Kafka、Azure Service Bus、Amazon SQS、NATS、In-Memory Queue、Redis Streams、Apache Pulsar。
怎么选择运输器

快速开始
安装 DotNetCore.CAP Nuget 包

CAP 支持主流的消息队列作为传输器
我本地安装的是 DotNetCore.CAP.RabbitMQ。
//你可以按需选择下面的包进行安装:
PM> Install-Package DotNetCore.CAP.Kafka
PM> Install-Package DotNetCore.CAP.RabbitMQ
PM> Install-Package DotNetCore.CAP.AzureServiceBus
PM> Install-Package DotNetCore.CAP.AmazonSQS
PM> Install-Package DotNetCore.CAP.NATS
PM> Install-Package DotNetCore.CAP.RedisStreams
PM> Install-Package DotNetCore.CAP.Pulsar



