CAP事件總線在NetCore中的應用+MySql存儲隊列信息

上一篇鏈接:https://www.cnblogs.com/fei686868/p/16721769.html

在上一篇中,我們介紹了CAP基於內存存儲的應用。本篇我們介紹下,把存儲做到mysql中,隊列還是使用內存隊列。

mysql中主要存儲是消息的內容以及狀態。

 

 

 

 在nuget上,我們引入 DotNetCore.CAP.MySql 包。

Appsetting.json中配置mysql數據庫連接字符串

  "ConnectionStrings": {
    "Default": "server=127.0.0.1;database=CAP;uid=root;pwd=123456"
  },

Programe.cs中,我們配置改爲採用mysql存儲

var services = builder.Services;
services.AddCap(x =>
{
    x.UseMySql(opt => {
        opt.ConnectionString = builder.Configuration.GetSection("ConnectionStrings:Default").Value;
    });
    x.UseInMemoryMessageQueue();
    x.FailedRetryInterval = 20;
    x.UseDashboard();
   
});

就紅色部分與內存存儲有差異而已。我們需要自己建好庫,表會自動創建。

OK,這樣我們就完成了配置

運行起來後,會自動創建數據表結構。

 

 我們可以看到自動生成了2個表,一個是發佈表,一個訂閱(接收)表

我看下發布表中內容

 

 表中會記錄我們配置的版本號,V1是默認的。 name:消息的名稱,content:消息頭和消息體,Retries 嘗試的次數(當發佈失敗後,會自動繼續嘗試),StatusName 是消息的最終狀態。

我們再看訂閱表

 

 內容跟發佈表基本類似,多了個Group分組,也就是我們可以把一個定義不同的分組來接收。

以上內容,就是採用mysql存儲的示例。

更多分享,請大家關注我的個人公衆號:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章