CanalSharp 是阿里巴巴开源项目 mysql 数据库 binlog 的增量订阅&消费组件 Canal 的 .NET 客户端。在数据库中,更改数据捕获(CDC)是一组软件设计模式,用于确定和跟踪已更改的数据,以便可以使用已更改的数据来采取措施,Canal 便是 mysql 数据库的一种 cdc 组件。
Install-Package CanalSharp
var loggerFactory = LoggerFactory.Create(builder =>
{
builder
.AddFilter("Microsoft", LogLevel.Debug)
.AddFilter("System", LogLevel.Information)
.AddConsole();
});
var logger= loggerFactory.CreateLogger<SimpleCanalConnection>();
CanalSharp 使用 Microsoft.Extensions.Logging.Abstractions ,因为目前主流日志组件,如:nlog、serilog 等,全部支持此日志抽象接入,也就是说你可以通过安装 nlog、serilog 对其的适配,来使用它们,无论是 Console App 或则是 Web App。
var conn=new SimpleCanalConnection(new SimpleCanalOptions("127.0.0.1",11111,1234),logger);
//连接到 Canal Server
await conn.ConnectAsync();
//订阅
await conn.SubscribeAsync();
var msg = await conn.GetAsync(1024);
CanalSharp | Canal |
---|---|
1.2.0 | 1.1.6 |
Mysql 版本由 Canal 决定。
Github: docs
WebSite: Canal Document (推荐)
请通过 Issue 向我们提交问题反馈,在提交时尽可能提供详细的信息,以便我们进行排查和解决。
如果你有一些好的想法,欢迎您提交 Pull Request 或者 Issue
目前重构的版本已经完全覆盖旧版本,且性能更高,代码更优美,实现了旧版本未实现的部分功能,支持最新的 Canal。
Task | Status |
---|---|
protobuf 3 协议生成 | 已完成 |
对接 Canal | 已完成 |
数据订阅封装 | TODO |
集群支持(Service 集群和 Client 集tgi群) | 已完成 |
数据发送到Kafka | 直接通过 Canal 发送 |
数据发送到Redis | 直接通过 Canal 发送 |