日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

asp.net core集成CAP(分布式事务总线)

發布時間:2023/12/4 asp.net 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 asp.net core集成CAP(分布式事务总线) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、前言


感謝楊曉東大佬為社區貢獻的CAP開源項目,傳送門在此:.NET Core 事件總線,分布式事務解決方案:CAP?以及?如何在你的項目中集成 CAP【手把手視頻教程】,之前也在工作中遇到分布式數據一致性的問題,也一直都是基于CAP理論和Base。

之前一直有關注楊老板的博客,直到今天才嘗試一下CAP,發現好用,非常的棒,特此把CAP以組件化的方式引入到我的框架中。

二、CAP介紹


針對CAP介紹可以參考上面給出的兩個鏈接。在此我只簡單的說明一下:

CAP 是一個在分布式系統中(SOA,MicroService)實現事件總線及最終一致性(分布式事務)的一個開源的 C# 庫,她具有輕量級,高性能,易使用等特點。

你可以輕松的在基于 .NET Core 技術的分布式系統中引入CAP,包括但限于 ASP.NET Core 和 ASP.NET Core on .NET Framework。

CAP 以 NuGet 包的形式提供,對項目無任何入侵,你仍然可以以你喜愛的方式來構建分布式系統。

CAP 具有 Event Bus 的所有功能,并且CAP提供了更加簡化的方式來處理EventBus中的發布/訂閱。

CAP 具有消息持久化的功能,也就是當你的服務進行重啟或者宕機時,她可以保證消息的可靠性。

CAP 實現了分布式事務中的最終一致性,你不用再去處理這些瑣碎的細節。

CAP 提供了基于 Microsoft DI 的 API 服務,她可以和你的 ASP.NET Core 系統進行無縫結合,并且能夠和你的業務代碼集成支持強一致性的事務處理。

?

三、asp.net core集成CAP


?由于我的框架是DDD六邊形架構,為了解耦方便,我針對外部的工具都是以組件化的方式引入到項目中,即新建了一個CAP類庫。

?

第一步:擴展了Startup類中的IServiceCollection,在CAP中我加入了Consul的注冊,如下圖:

我用的是mysql數據庫,以及使用kafka消息隊列,這邊要注意,kafka最好部署在linux系統上,在windows系統會存在很多的坑,如果你覺得你的天坑能力強,可以嘗試一下。

我這邊也集成了 Consul服務注冊,如果大家對cosnul感謝的興趣的可以看我的另外一篇文章:實戰中的asp.net core結合Consul集群&Docker實現服務治理?里面有講解了consul集群部署。

?

好了然后我在我的主項目中配置一下,就開始用吧:

#region 配置CAPservices.AddCAPConfigure(Configuration);
#endregion

?

?

第二步:在asp.net core webapi項目中新建一個控制器

配置如下:

此處的mysql配置大家可自行補充,或者按照 @Savorboard? 給出的demo操作即可。

?

第三步:部署一下kafka。

我在centos服務器上采用docker部署,命令如下:

//下載zookeeper
docker pull wurstmeister/zookeeper

//下載kafka
docker pull wurstmeister/kafka:2.11-0.11.0.3

?

//啟動zookeeper
docker run -d --name zookeeper --publish 2181:2181 --volume /etc/localtime:/etc/localtime wurstmeister/zookeeper

//啟動kafka
docker run -d --name kafka --publish 9092:9092 \
--link zookeeper \
--env KAFKA_ZOOKEEPER_CONNECT=192.168.161.163:2181 \
--env KAFKA_ADVERTISED_HOST_NAME=192.168.161.163 \
--env KAFKA_ADVERTISED_PORT=9092 \
--volume /etc/localtime:/etc/localtime \
wurstmeister/kafka:2.11-0.11.0.3

?

部署完畢后就進入下一步運行啦。

第四步:運行項目,運行成功后,我嗯可以在數據庫中發現cap會自動在數據庫中創建兩張表,一張是 發布信息表、一張是接收信息表。

?

?表:

?

?

發現 表中有數據存在:

數據體現法發送接收成功。

?

?

我們再來看看cap有提供的UI界面,發現里面有一個我們用consul注冊的服務器。完美實現。

我們看一下consul集群:

?

?

四、總結

?歡迎大家積極嘗試CAP,我也會在后續的項目中采用CAP,希望我們的社區越來越強大。

相關文章:

  • 如何在你的項目中集成 CAP【手把手視頻教程】

  • CAP 2.3版本發布,支持 MongoDB

  • CAP帶你輕松玩轉ASP.NETCore消息隊列

  • .NetCore Cap 結合 RabbitMQ 實現消息訂閱

  • .NET Core微服務之開源項目CAP的初步使用

  • .NET Core Community 首個千星項目誕生:CAP

原文地址:?https://www.cnblogs.com/guolianyu/p/9756941.html


.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com

總結

以上是生活随笔為你收集整理的asp.net core集成CAP(分布式事务总线)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。