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存储的示例。
更多分享,请大家关注我的个人公众号: