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


開源分布式消息框架 Cap 可以在GitHub上拉也可以通過nuget添加

上一篇博文寫了 Windows RabbitMQ的安裝使用 

Cap支持事務,通過捕獲數據庫上下文連接對象實現 消息事務,消息持久化

怎么來實現消息訂閱 消費?

使用起來非常簡單,主要通過這個類來實現 

發布:ICapPublisher 、

訂閱:CapSubscribe

DNC的注入就不做介紹了,引用好相關的Cap類,並注入如下,如果需要事務請注入數據庫訪問上下文對象

 public ValuesController(AppDbContext dbContext, ICapPublisher capPublisher)
        {
            _dbContext = dbContext;
            _capBus = capPublisher;
        }

消息發布  :定義消息名稱  參數

_capBus.Publish("sample.rabbitmq.mysql", parameters);

消息訂閱 訂閱消息名稱  本生是Attributes屬性,寫到 Action上就ok了

 [CapSubscribe("sample.rabbitmq.mysql")]
public void ReceiveMessage(string parameters)
        {
            //處理方法
        }

配置

這里我們用Mysql來試試

           //添加數據庫上下文服務
services.AddDbContext<AppDbContext>();
//添加cap服務 services.AddCap(x
=> { x.UseEntityFramework<AppDbContext>(); // x.UseRabbitMQ("localhost"); x.UseRabbitMQ(options => {
            //上一篇中我創建的用戶名密碼 options.HostName
= "192.168.0.42"; options.UserName = "liyouming"; options.Password = "lym123!@#"; });
//啟用儀表盤 x.UseDashboard(); });

在配置Configure 

 app.UseCap();

啟動程序 發布一個消息 並接受訂閱 訪問下儀表盤

已經發布成功

下面登錄下 RabbitMQ Server Management

數據庫消息發布及訂閱數據

 

 

參考資料

https://www.cnblogs.com/savorboard/p/cap.html

https://github.com/dotnetcore/CAP

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM