canal mysql mongodb_CanalSharp.AspNetCore v0.0.4-支持输出到MongoDB

原标题:CanalSharp.AspNetCore v0.0.4-支持输出到MongoDB

6695902a9c4150e2a92f7bf65075ddbe.gif

一、多样输出支持

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

d31fcc339f1d00f8b057d82447555891.png

这个项目的GitHub地址为:https://github.com/XiLife-OSPC/CanalSharp.AspNetCore

二、新的配置内容

为了同时支持MySql及MongoDB,请更新CanalSharp.AspNetCore至0.0.4版本:

485913ec6bfed3191c53898115390362.png

然后,如果要输出到MySql请更新以下配置到appSettings.json:

"Canal": {

"Enabled": true,

"LogSource": "Core.Product.Canal",

"ServerIP": "192.168.16.190", // Canal-Server IP

"ServerPort": 8001, // Canal-Server 端口号

"Destination": "products", // 与Canal-Server中配置的destination保持一致

"Filter": "xdp_products_dev..*", // 与Canal-Server中配置的filter保持一致

"SleepTime": 100, // 空闲时间睡眠时间

"BufferSize": 2048, // 如果涉及到更改的数据量较大请将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": 8001, // Canal-Server 端口号

"Destination": "products", // 与Canal-Server中配置的destination保持一致

"Filter": "xdp_products_dev..*", // 与Canal-Server中配置的filter保持一致

"SleepTime": 100, // 空闲时间睡眠时间

"BufferSize": 2048, // 如果涉及到更改的数据量较大请将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表(该表会自动创建)会自动记录变更的记录数据如下图所示:

83d1308cc90b27c65a8973e926c149a4.png

PS:INSERT操作会记录新增的数据行数据到CurrentValue列, DELETE操作会记录删除的数据行数据到PreviousValue列, UPDATE操作则会记录修改前PreviousValue和修改后的值CurrentValue。3.2 MongoDB

如果选择输出到MongoDB,那么会自动记录变更数据到你指定的数据库中的changelogs中如下图:

253fcd026c6c23a1468fc791e0ec54bf.png

就这样吧,Code仍然很乱,也没时间去优化了,先就这样将就用吧。返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值