精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

.NET開源的處理分布式事務的解決方案

開發 前端
CAP 是一個基于 .NET Standard 的 C# 庫,它是一種處理分布式事務的解決方案,同樣具有 EventBus 的功能,它具有輕量級、易使用、高性能等特點。CAP 是一個EventBus,同時也是一個在微服務或者SOA系統中解決分布式事務問題的一個框架。

前言

在分布式系統中,由于各個系統服務之間的獨立性和網絡通信的不確定性,要確保跨系統的事務操作的最終一致性是一項重大的挑戰。今天給大家推薦一個.NET開源的處理分布式事務的解決方案基于 .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

圖片圖片

CAP 提供了主流數據庫作為存儲:

  • 我本地安裝的是DotNetCore.CAP.MongoDB。
// 按需選擇安裝你正在使用的數據庫:
PM> Install-Package DotNetCore.CAP.SqlServer
PM> Install-Package DotNetCore.CAP.MySql
PM> Install-Package DotNetCore.CAP.PostgreSql
PM> Install-Package DotNetCore.CAP.MongoDB

圖片圖片

配置CAP到 Program.cs 文件中,如下:

builder.Services.AddCap(x =>
            {
                //如果你使用的 EF 進行數據操作,你需要添加如下配置:
                //配置數據庫上下文
                x.UseEntityFramework<AppDbContext>();

                //如果你使用的 MongoDB,你可以添加如下配置:
                x.UseMongoDB("ConnectionStrings");  //注意,僅支持MongoDB 4.0+集群

                //CAP RabbitMQ 配置
                x.UseRabbitMQ(rab => {
                    rab.HostName = "192.0.1.1";
                    rab.Password = "123456";
                    rab.Port = 5672;
                    rab.UserName = "123456";
                });
            });

發布

在 Controller 中注入 ICapPublisher 然后使用 ICapPublisher 進行消息發送。

public class PublishController : Controller
{
    private readonly ICapPublisher _capBus;

    public PublishController(ICapPublisher capPublisher)
    {
        _capBus = capPublisher;
    }
    
    //不使用事務
    [Route("~/without/transaction")]
    public IActionResult WithoutTransaction()
    {
        _capBus.Publish("xxx.services.show.time", DateTime.Now);

        // Publish delay message
        _capBus.PublishDelayAsync(TimeSpan.FromSeconds(delaySeconds), "xxx.services.show.time", DateTime.Now);
 
        return Ok();
    }

    //Ado.Net 中使用事務,自動提交
    [Route("~/adonet/transaction")]
    public IActionResult AdonetWithTransaction()
    {
        using (var connection = new MySqlConnection(ConnectionString))
        {
            using (var transaction = connection.BeginTransaction(_capBus, autoCommit: true))
            {
                //業務代碼

                _capBus.Publish("xxx.services.show.time", DateTime.Now);
            }
        }
        return Ok();
    }

    //EntityFramework 中使用事務,自動提交
    [Route("~/ef/transaction")]
    public IActionResult EntityFrameworkWithTransaction([FromServices]AppDbContext dbContext)
    {
        using (var trans = dbContext.Database.BeginTransaction(_capBus, autoCommit: true))
        {
            //業務代碼

            _capBus.Publish("xxx.services.show.time", DateTime.Now);
        }
        return Ok();
    }
}

訂閱

Action Method

在 Action 上添加 CapSubscribeAttribute 來訂閱相關消息。

public class PublishController : Controller
{
    [CapSubscribe("xxx.services.show.time")]
    public void CheckReceivedMessage(DateTime datetime)
    {
        Console.WriteLine(datetime);
    }
}

Service Method

如果你的訂閱方法沒有位于 Controller 中,則你訂閱的類需要繼承 ICapSubscribe:

namespace xxx.Service
{
    public interface ISubscriberService
    {
        void CheckReceivedMessage(DateTime datetime);
    }

    public class SubscriberService: ISubscriberService, ICapSubscribe
    {
        [CapSubscribe("xxx.services.show.time")]
        public void CheckReceivedMessage(DateTime datetime)
        {
        }
    }
}

項目源碼地址

更多項目實用功能和特性歡迎前往項目開源地址查看??,別忘了給項目一個Star支持??。

GitHub開源地址:https://github.com/dotnetcore/CAP

官方文檔:https://cap.dotnetcore.xyz/

優秀項目和框架精選

該項目已收錄到C#/.NET/.NET Core優秀項目和框架精選中,關注優秀項目和框架精選能讓你及時了解C#、.NET和.NET Core領域的最新動態和最佳實踐,提高開發工作效率和質量。坑已挖,歡迎大家踴躍提交PR推薦或自薦(讓優秀的項目和框架不被埋沒??)。

https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md


責任編輯:武曉燕 來源: 追逐時光者
相關推薦

2025-04-29 04:00:00

分布式事務事務消息

2019-01-11 18:22:07

阿里巴巴技術開源

2025-04-28 00:44:04

2023-09-14 15:44:46

分布式事務數據存儲

2020-05-28 09:35:05

分布式事務方案

2010-07-21 13:53:41

SQL Server分

2025-05-07 00:10:00

分布式事務TCC模式

2021-09-28 09:43:11

微服務架構技術

2024-06-13 08:04:23

2025-06-30 07:15:32

.NET應用分布式

2024-03-26 12:08:53

分布式事務存儲

2020-03-31 16:13:26

分布式事務方案TCC

2021-06-28 10:03:44

分布式數據庫架構

2023-08-17 10:23:07

擴展方案

2019-09-09 10:09:51

分布式事務 數據庫

2019-07-25 15:32:35

分布式事務微服務系統架構

2025-08-27 09:11:48

2024-12-09 09:35:00

2020-09-23 09:52:01

分布式WebSocketMQ

2023-03-05 18:23:38

分布式ID節點
點贊
收藏

51CTO技術棧公眾號

久久伊人久久| 男同在线观看| 欧美人成在线| 日韩精品一区国产麻豆| 亚洲爆乳无码精品aaa片蜜桃| 中文字幕人妻一区二区在线视频 | 久久中文字幕国产| 免费欧美一级片| 成人影音在线| 91麻豆免费看| 国外成人在线直播| 在线不卡av电影| 亚洲精品成a人ⅴ香蕉片| 一区二区在线观看视频在线观看| 国产精品播放| 中文在线字幕免费观| 91精品综合久久久久久久久久久| 精品久久人人做人人爰| 日韩网址在线观看| 老司机在线看片网av| 成人三级在线视频| 欧美亚洲激情在线| 18禁裸乳无遮挡啪啪无码免费| 日本在线中文字幕一区二区三区 | aa日韩免费精品视频一| 三年中国国语在线播放免费| 无遮挡的视频在线观看| 国产福利精品一区二区| 茄子视频成人在线| 久久爱一区二区| 日本亚洲不卡| 欧美一区二区三区免费观看视频| 看av免费毛片手机播放| av在线天堂| 波多野结衣中文字幕一区 | 日韩精品第一区| 精品国产电影一区| 国产精品超碰97尤物18| 国产免费一区二区三区香蕉精| 免费中文字幕视频| 国产探花在线精品| 亚洲精品电影在线| 91丨porny丨九色| 成人国产一区| 色国产精品一区在线观看| 成人免费网站入口| 成人在线app| 中文字幕一区二区三区视频| 日本精品二区| 免费成人av电影| 99这里只有精品| 成人自拍视频网站| 精品人妻无码一区二区色欲产成人 | 国产精品专区一| 波多野结衣激情视频| 鲁大师影院一区二区三区| 欧美在线中文字幕| 99久久精品国产亚洲| 亚洲欧美网站| 欧美在线视频网站| 免费视频久久久| 秋霞国产午夜精品免费视频| 国产精品va在线播放| 糖心vlog精品一区二区| 男女男精品视频网| 国产日韩中文在线| 国产黄色片av| 成人视屏免费看| 久久精品人人做人人爽电影| 欧美日韩视频精品二区| 久久久久国产精品人| 日产精品高清视频免费| av在线免费播放网站| 国产精品国产三级国产普通话三级| 一区二区成人国产精品| 亚洲wwwww| 午夜精品视频在线观看| 国产无套内射久久久国产| 日本电影欧美片| 精品视频在线视频| 亚洲精品一二三四| 日韩精选在线| 中文字幕亚洲在线| 玖玖爱这里只有精品| 亚洲国产美女| 国产成人精品在线观看| 中文字字幕在线观看| 国产乱人伦精品一区二区在线观看| 成人三级在线| 国产一级网站视频在线| 最近日韩中文字幕| 欧美乱大交xxxxx潮喷l头像| 日本韩国欧美| 日韩欧美不卡在线观看视频| 一区二区三区免费在线观看视频| 欧美成免费一区二区视频| 欧美风情在线观看| 日韩综合在线观看| 国产精品99久久久久久有的能看| 精品欧美一区二区在线观看视频| 91精品国产91久久久久游泳池| 亚洲免费资源在线播放| 久久精品国产精品亚洲色婷婷| 国产精品久久久久久久久久齐齐| 日韩精品一区二区三区在线观看 | 成人看片黄a免费看在线| 欧美亚洲爱爱另类综合| 影音先锋在线视频| 在线观看一区不卡| 在线中文字日产幕| 久久网站免费观看| 欧美专区福利在线| 国产浮力第一页| 国产色爱av资源综合区| 日韩av在线播放不卡| 欧美激情福利| 国产亚洲精品一区二555| 国产精品99无码一区二区| 美女性感视频久久| 欧美黑人3p| 91桃色在线| 91精品国产高清一区二区三区蜜臀| 四虎永久免费在线观看| 国产一区激情| 91美女片黄在线观看游戏| 国产在线视频网址| 天天综合天天综合色| 国产无遮挡猛进猛出免费软件 | 日韩一区免费观看| 麻豆理论在线观看| 精品国产乱码久久| 青娱乐国产在线| 老色鬼精品视频在线观看播放| 免费成人在线观看av| 92久久精品| 亚洲福利在线视频| 久久久精品99| 国产福利一区二区三区在线视频| 这里只有精品66| 久久精品资源| 色综合亚洲精品激情狠狠| 手机av免费观看| 久久影院视频免费| 成人综合视频在线| 希岛爱理av免费一区二区| 久久久久久国产精品三级玉女聊斋| 国产乱人乱偷精品视频a人人澡| 中文字幕电影一区| 国产一二三区av| 日韩综合一区| 成人免费视频在线观看超级碰| a天堂在线资源| 欧美自拍丝袜亚洲| 欧美xxxx精品| 国内精品自线一区二区三区视频| 一区二区三区四区视频在线观看 | 99成人精品| 国产亚洲福利社区| 麻豆视频在线看| 日韩精品www| 男人天堂2024| 欧美激情综合网| 男女视频在线看| 99精品网站| 99热在线播放| 爱草tv视频在线观看992| 亚洲国产日韩欧美在线99| 六月丁香婷婷综合| 欧美激情综合在线| 91欧美一区二区三区| 国产精品v亚洲精品v日韩精品| 国产乱码精品一区二区三区不卡| 男人的天堂免费在线视频| 国产一区二区三区18| 国产又粗又猛又色又| 夜夜精品浪潮av一区二区三区| 日本三级日本三级日本三级极| 亚洲影院一区| 亚洲视频sss| 一区二区三区高清在线观看| 7777精品久久久久久| 国产三级在线免费| 欧美一区二区网站| 欧美另类一区二区| 国产精品欧美极品| 艳妇乳肉豪妇荡乳xxx| 日韩高清在线电影| 成年在线观看视频| 亚洲综合图色| 亚洲一区二区三区四区视频| 久久男人天堂| 久久韩国免费视频| 色呦呦免费观看| 欧美日韩亚洲高清一区二区| 久草免费新视频| 久久久精品免费网站| 三级a三级三级三级a十八发禁止| 欧美三区在线| 亚洲国产日韩综合一区| 高潮按摩久久久久久av免费| 清纯唯美日韩制服另类| 污视频网站在线免费| 亚洲天堂av女优| 亚洲av无码一区二区乱子伦| 在线免费不卡视频| 国产一级片视频| 国产精品久久综合| 粉嫩av蜜桃av蜜臀av| 国产精品一区在线| 亚洲一区在线不卡| 国产精品综合| av在线免费观看国产| 日韩免费看片| 免费中文日韩| 国产精品任我爽爆在线播放| 国产一区二区丝袜高跟鞋图片| 成人欧美大片| 久久久久久伊人| 亚洲制服国产| 久久精品99久久久香蕉| 黄色大片在线看| 亚洲激情视频网| 午夜精品久久久久久久第一页按摩 | 日本欧美一区| 欧美在线视频观看免费网站| xxxx视频在线| 久久777国产线看观看精品| 国产福利电影在线| 亚洲精品资源在线| 欧美自拍偷拍第一页| 日韩亚洲欧美成人一区| 一级黄色大毛片| 欧美无人高清视频在线观看| 青草视频在线观看免费| 精品av在线播放| 日韩伦人妻无码| 亚洲二区视频在线| 久久午夜鲁丝片午夜精品| 一区二区三区日本| 欧美日韩亚洲国产另类| 亚洲视频一区在线| 免费三级在线观看| 亚洲人成电影网站色mp4| 国产成人在线网址| 国产精品美女www爽爽爽| 国产主播av在线| 亚洲国产精品av| 日本视频在线免费| 中文字幕亚洲欧美在线不卡| 四虎影视一区二区| 日韩美女久久久| 欧美日韩一级大片| 亚洲电影在线免费观看| 国产稀缺真实呦乱在线| 午夜精品123| 一级黄色大片视频| 欧美视频在线一区二区三区 | 欧美日韩在线一二三| 欧美精美视频| 亚洲国产成人不卡| 亚洲美女视频| 欧美一区二区三区综合| 9色精品在线| 国产视频一区二区三区在线播放 | 在线免费观看污视频| 91美女片黄在线| 亚洲精品午夜视频| 亚洲丝袜精品丝袜在线| 麻豆影视在线播放| 天天免费综合色| 精品国产xxx| 欧美日韩一区中文字幕| 国产xxxxxx| 日韩福利在线播放| av福利精品| 欧美日韩aaaa| av资源亚洲| 91精品国产综合久久男男 | 欧美xxxx黑人又粗又长密月| 日韩精品二区| 亚洲国产精品成人天堂| 日韩和的一区二区| 一起草最新网址| 久久午夜羞羞影院免费观看| 色www亚洲国产阿娇yao| 亚洲一区二区视频| 波多野结衣激情视频| 精品成人一区二区三区四区| 国产福利在线看| 国模吧一区二区三区| 成人国产激情| 国产精品视频免费一区| 日韩成人a**站| r级无码视频在线观看| 另类专区欧美蜜桃臀第一页| 99re久久精品国产| 国产精品理论片| 秋霞精品一区二区三区| 91精品国产91久久综合桃花| 能在线看的av| 欧美激情videoshd| 精品国产黄a∨片高清在线| 国产高清自拍一区| 国产高清一区二区| 人妻少妇被粗大爽9797pw| 国产精品自在在线| 亚洲天堂最新地址| 精品福利在线看| aaa级黄色片| 视频直播国产精品| 成人影院入口| 好吊色欧美一区二区三区四区| 国产精品久久久久久影院8一贰佰 国产精品久久久久久麻豆一区软件 | 国内外成人激情视频| 国产精品亚洲一区二区三区妖精| 手机毛片在线观看| 欧美午夜无遮挡| 国精品人妻无码一区二区三区喝尿| 日韩中文在线观看| av成人在线看| 欧洲精品亚洲精品| 午夜在线视频观看日韩17c| 精品国产免费久久久久久婷婷| 国产精品久久久99| 中文字幕你懂的| 一道本无吗dⅴd在线播放一区| 亚洲天堂电影| 国产一区再线| 亚洲精品欧美| 日本不卡视频一区| 亚洲制服欧美中文字幕中文字幕| 黑人粗进入欧美aaaaa| 亚洲香蕉久久| 精品久久久久久乱码天堂| 伊人久久亚洲热| 男男一级淫片免费播放| 一个色综合网站| 亚洲国产精品suv| 欧美福利视频网站| 综合欧美亚洲| 国产资源在线免费观看| 国产91综合一区在线观看| 麻豆91精品91久久久| 日韩亚洲国产中文字幕欧美| 污视频网站在线免费| 99视频网站| 欧美日韩视频一区二区三区| 日本高清免费在线视频| 亚洲激情一二三区| 成人毛片在线精品国产| 久久久久久网站| 另类图片第一页| 成人免费在线小视频| 国产亚洲欧洲一区高清在线观看| av一级在线观看| 中文字幕av日韩| 在线视频成人| 国产黄色激情视频| 波多野结衣在线一区| 五月婷婷视频在线| 一区二区三区四区在线观看视频| 999国产精品亚洲77777| 在线观看福利一区| 国产精品一区一区| 日韩欧美一级视频| 亚洲天堂第二页| 小说区图片区亚洲| 日韩精品综合在线| 91丝袜高跟美女视频| 成人午夜精品视频| 久久手机精品视频| 国产精品超碰| 欧美在线观看视频网站| 亚洲欧洲日韩综合一区二区| 成人激情四射网| 日本精品视频在线播放| 久久精品国产大片免费观看| 韩国一区二区三区四区| 日韩欧美福利视频| 经典三级在线视频| 日本美女一区二区三区视频| 加勒比婷婷色综合久久| 亚洲精品720p| 欧美综合社区国产| 国产精品无码一区二区在线| 国产精品久久久久婷婷二区次| www.天天干.com| 国产成人精品视| 伊人久久大香线蕉综合四虎小说| 国产精品无码一区二区三| 欧美日韩高清一区| 草草在线视频| 中文字幕中文字幕在线中一区高清| 成人激情文学综合网| 中文字幕欧美在线观看| 国产69精品久久久| 91日韩视频| 深爱五月激情网| 欧美精品一区二区三区久久久| 欧美日韩五码|