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存储的示例。

更多分享,请大家关注我的个人公众号:

 

 

posted @ 2022-09-26 09:02  黄明辉  阅读(188)  评论(0编辑  收藏  举报