CanalSharp.AspNetCore v0.0.4-支持输出到MongoDB
一、多样输出支持
CanalSharp.AspNetCore是一个基于CanalSharp的适用于ASP.NET Core的一个后台任务组件,它可以随着ASP.NET Core实例的启动而启动,目前采用轮询的方式对Canal Server进行监听,获得MySql行更改(RowChange)后写入MySql指定的记录表中。在此次更新中,可以支持写入MongoDB数据库了,换句话说,可以支持MySql或MongoDB二选一的输出方式了。

这个项目的GitHub地址为:https://github.com/XiLife-OSPC/CanalSharp.AspNetCore
二、新的配置内容
为了同时支持MySql及MongoDB,请更新CanalSharp.AspNetCore至0.0.4版本:

然后,如果要输出到MySql请更新以下配置到appSettings.json:
"Canal": {
"Enabled": true,
"LogSource": "Core.Product.Canal",
"ServerIP": "192.168.16.190", // Canal-Server IP
"ServerPort": , // Canal-Server 端口号
"Destination": "products", // 与Canal-Server中配置的destination保持一致
"Filter": "xdp_products_dev\\..*", // 与Canal-Server中配置的filter保持一致
"SleepTime": , // 空闲时间睡眠时间
"BufferSize": , // 如果涉及到更改的数据量较大请将BufferSize设大一些
"Output": {
"MySql":{
"ConnStr": "Server=192.168.16.150;Port=3306;Database=products_dev;Uid=dev;Pwd=xdp" // 要输出的日志记录表所在的MySql连接字符串
}
}
}
如果要输出到MongoDB请更新以下配置到appSettings.json:
"Canal": {
"Enabled": true,
"LogSource": "Core.Product.Canal",
"ServerIP": "192.168.16.190", // Canal-Server IP
"ServerPort": , // Canal-Server 端口号
"Destination": "products", // 与Canal-Server中配置的destination保持一致
"Filter": "xdp_products_dev\\..*", // 与Canal-Server中配置的filter保持一致
"SleepTime": , // 空闲时间睡眠时间
"BufferSize": , // 如果涉及到更改的数据量较大请将BufferSize设大一些
"Output": {
"Mongo": {
"ConnStr": "mongodb://192.168.16.150:27017",
"DataBase": "xdp_behaviors_dev"
}
}
}
就这点配置文件的改动,其他的无需改动。
具体的Sample示例可以参考这里:CanalSharp.AspNetCore.Sample
三、效果演示
当在指定要监听的数据库对某张表的某行数据进行Update或Delete操作后,又或者进行Insert行操作后。
3.1 MySql
如果选择输出到MySql数据库,那么canal.logs表(该表会自动创建)会自动记录变更的记录数据如下图所示:

PS:INSERT操作会记录新增的数据行数据到CurrentValue列,DELETE操作会记录删除的数据行数据到PreviousValue列,UPDATE操作则会记录修改前PreviousValue和修改后的值CurrentValue。
3.2 MongoDB
如果选择输出到MongoDB,那么会自动记录变更数据到你指定的数据库中的changelogs中如下图:

就这样吧,Code仍然很乱,也没时间去优化了,先就这样将就用吧。
CanalSharp.AspNetCore v0.0.4-支持输出到MongoDB的更多相关文章
- 一个实时收集MySql变更记录的组件CanalSharp.AspNetCore
一.关于CanalSharp CanalSharp 是阿里巴巴开源项目 Canal 的 .NET 客户端.为 .NET 开发者提供一个更友好的使用 Canal 的方式.Canal 是mysql数据库b ...
- Hasor-Core v0.0.4 & Web v0.0.3 发布
“Hasor是一款开源的 Java 应用开发框架.它是围绕 Guice 为核心创建的一系列模块组合而成.使用Hasor 会加快软件软件开发效率并降低开发成本.目前 Hasor包含了 Hasor-Cor ...
- 【纯技术贴】.NETStandard FreeSql v0.0.9 功能预览
年关将至,首页技术含量文章真是越来越少,理解大家盼着放假过年,哥们我何尝不是,先给大家拜个早年. 兄弟我从11月底发了神经,开启了 ORM 功能库的开发之旅,历时两个月编码和文档整理,目前预览版本更新 ...
- [AspNetCore 3.0 ] Blazor 服务端组件 Render, RenderFragment ,RenderTreeBuilder, CascadingValue/CascadingParameter 等等
一.组件 支撑Blazor的是微软的两大成熟技术,Razor模板和SignalR,两者的交汇点就是组件.通常,我们从ComponentBase派生的类型,或者创建的.razor 文件,就可以称作组件. ...
- 轻量级模块化开发框架 Hasor 核心模块 v0.0.2 发布
首先引用Wiki的介绍一下Hasor: “Hasor是一款开源框架.它是为了解决企业模块化开发中复杂性而创建的.Hasor遵循简单的依赖.单一职责,在开发多模块企业项目中更加有调理.然 而Ha ...
- 使Asp.net Core同时支持输出Json/Xml
我们知道Asp.net Core是支持输出为Json格式的.同时也支持输出为xml格式.只要我们正确的配置.并在Request时指定正确的Accept,即可根据不同的Header来输出不同的格式. 前 ...
- [OIDC in Action] 3. 基于OIDC(OpenID Connect)的SSO(添加Github OAuth 2.0的支持)
在上上一篇基于OIDC的SSO的登录页面的截图中有出现QQ登录的地方.这个其实是通过扩展OIDC的OpenID Provider来实现的,OpenID Provider简称OP,OP是OIDC的一个很 ...
- Magicodes.NET框架之路——V0.0.0.5 Beta版发布
最近写代码的时间实在不多,而且今年又打算业余学习下Unity3D以及NodeJs(用于开发游戏后台),因此完善框架的时间更不多了.不过我会一直坚持下去的,同时我也希望有兴趣的同学可以加入Push你的代 ...
- windows 上用 docker 部署aspnetcore 2.0
首先下载docker for windows 并且 安装. 这其中需要显卡支持虚拟化 windows系统升级到专业版 bois 启用虚拟 通过vs2017 创建一个net core ap ...
随机推荐
- GNU μC/OS-II 在 S3C2440 上中断的实现
上一篇文章介绍了S3c2440的中断体系结构,今天我们来分析一下GNU-uC/OS-II在S3c2440上中断的实现. 首先找到IRQ的中断的向量,位于 2440init.S : OK ,我们通过名字 ...
- Visual Studio Ultimate 2013
简体中文版 SHA-1: 07313542D36ED8BEEF18520AA4F15E33E32C7F77 http://download.microsoft.com/download/0/7/5/0 ...
- 安装Eclipse时遇到”java was started but returned exit code = 13“如何解决?
有的时候运行开发工具时会出现java was started but returned exit code = 13......的提示,绝大多数的问题都是版本问题: 我们可以打开命令行工具cmd 输入 ...
- c#连接访问数据库(菜鸡篇)
C#如何访问数据库(小白篇) 刚入坑不久学习的路上还是遇到了不小的问题,昨天学习C#的时候需要连接数据库获取数据. 网上有很多这样的文章,说实话对于我这样的小白还真是有点难理解,经过一番周折总算是了解 ...
- c# 判断是否是手机访问
public static bool CheckAgent() { bool flag = false; string agent = HttpContext.Current.Request.User ...
- ios -- 成员变量、实例变量与属性的区别
最近打开手机就会被胡歌主演的<猎场>刷屏,这剧我也一直在追,剧中的郑秋冬,因为传销入狱五年,却在狱中拜得名师孙漂亮(孙红雷),苦学HR,并学习了心理学,成功收获两样法宝.出狱后因为怕受 ...
- C-指针,二级指针,二维数组作为函数参数使用,C语言链表(详解)
一级指针 int *p; //表示定义一个int型(4字节)的指针p &p //表示p自身的地址位置 p ...
- Linux下编译、链接和装载
——<程序员的自我修养>读书笔记 编译过程 在Linux下使用GCC将源码编译成可执行文件的过程可以分解为4个步骤,分别是预处理(Prepressing).编译(Compilation). ...
- [转*译]Networking API Improvements in Windows 10
在当今,以云优先,移动优先技术为宗旨的时代下,大多数Apps都至少有一些与web服务或网络上其他设备的集成.这些包括应用程序,它获取天气在线内容,新闻或体育比赛的分数,媒体或下载的播客,甚至对 ...
- 【代码笔记】Web-ionic-select
一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...