在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → CanalSharp源码:.NET客户端实现MySQL binlog增量订阅与消费

CanalSharp源码:.NET客户端实现MySQL binlog增量订阅与消费

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:0.66M
  • 下载次数:0
  • 浏览次数:6
  • 发布时间:2024-03-20
  • 实例类别:一般编程问题
  • 发 布 人:chenxiaolan
  • 文件格式:.zip
  • 所需积分:2
 相关标签: MySql canal .NET NLog can

实例介绍

【实例简介】
CanalSharp 是一个基于阿里巴巴开源项目Canal的.NET客户端,专门用于实现MySQL数据库binlog的增量订阅和消费。Canal本身作为一种CDC(Change Data Capture)组件,允许用户跟踪数据库中的数据变更,并据此采取相应措施。

快速入门:
首先,通过NuGet安装CanalSharp:
Install-Package CanalSharp
接下来,初始化日志配置:
var loggerFactory = LoggerFactory.Create(builder =>{    builder        .AddFilter("Microsoft", LogLevel.Debug)        .AddFilter("System", LogLevel.Information)        .AddConsole();});var logger= loggerFactory.CreateLogger<SimpleCanalConnection>();
CanalSharp支持与主流日志组件如nlog、serilog等集成。创建连接并订阅数据:
var conn=new SimpleCanalConnection(new SimpleCanalOptions("127.0.0.1",11111,1234),logger);//连接到 Canal Serverawait conn.ConnectAsync();//订阅await conn.SubscribeAsync();
最后,获取数据:
var msg = await conn.GetAsync(1024);
CanalSharp与Canal版本的兼容性由Canal决定,目前支持的版本包括CanalSharp 1.2.0与Canal 1.1.6。

对于任何使用上的问题,建议通过提交Issue来反馈。CanalSharp目前已经完成了与protobuf 3的协议生成、对接Canal、集群支持等重要功能,且在性能和代码质量上都有显著提升。
【实例截图】
【核心代码】
文件清单
└── CanalSharp-ad355ba5473a01d24339b67f711c57ce4c099685
    ├── assets
    │   ├── 668104-20180925182815646-1209020640.png
    │   ├── 668104-20180925182816462-2110152563.png
    │   └── ys.gif
    ├── build
    │   ├── common.props
    │   ├── Jenkinsfile
    │   ├── Release.sh
    │   └── version.props
    ├── CanalSharp.sln
    ├── CanalSharp.sln.DotSettings
    ├── code-of-conduct.md
    ├── code-of-conduct.zh-CN.md
    ├── docs
    │   ├── package.json
    │   ├── package-lock.json
    │   ├── README.md
    │   └── zh
    │       ├── ack.md
    │       ├── assets
    │       │   ├── canal-1.jpg
    │       │   ├── canal.png
    │       │   ├── canalsharp.png
    │       │   └── ncc.png
    │       ├── canal-cfg.md
    │       ├── db-cfg.md
    │       ├── ha.md
    │       ├── parsing-data.md
    │       ├── quick-start.md
    │       ├── README.md
    │       └── subscribe.md
    ├── LICENSE
    ├── README.md
    ├── renovate.json
    ├── sample
    │   ├── CanalSharp.SimpleApp
    │   │   ├── CanalSharp.SimpleApp.csproj
    │   │   └── Program.cs
    │   └── Docker
    │       ├── docker-compose.yml
    │       ├── mysql
    │       │   ├── init
    │       │   │   └── init.sql
    │       │   └── mysqld.cnf
    │       └── var
    │           └── lib
    │               └── mysql
    ├── src
    │   └── CanalSharp
    │       ├── CanalSharp.csproj
    │       ├── CanalSharp.csproj.DotSettings
    │       ├── Check.cs
    │       ├── Connections
    │       │   ├── CanalOptionsBase.cs
    │       │   ├── ConnectionState.cs
    │       │   ├── Enums
    │       │   │   └── FetchDataTimeoutUnitType.cs
    │       │   ├── HA
    │       │   │   ├── CanalClientRunningInfo.cs
    │       │   │   ├── CanalServerRunningInfo.cs
    │       │   │   ├── ClusterCanalConnection.cs
    │       │   │   └── ClusterCanalOptions.cs
    │       │   ├── ICanalConnection.cs
    │       │   └── Simple
    │       │       ├── SimpleCanalConnection.cs
    │       │       └── SimpleCanalOptions.cs
    │       ├── Exceptions
    │       │   └── CanalConnectionException.cs
    │       ├── Extensions
    │       │   └── ProtocolExtensions.cs
    │       ├── Protocol
    │       │   ├── Assets
    │       │   │   ├── CanalEntry.proto
    │       │   │   └── CanalPacket.proto
    │       │   ├── CanalEntry.cs
    │       │   ├── CanalPacket.cs
    │       │   ├── gen.bat
    │       │   ├── gen.sh
    │       │   ├── Message.cs
    │       │   └── README.md
    │       └── Utils
    │           ├── IpUtil.cs
    │           └── SecurityUtil.cs
    └── test
        └── CanalSharp.UnitTest
            ├── CanalSharp.UnitTest.csproj
            ├── db.sql
            ├── Protocol
            │   └── Protocol_Tests.cs
            ├── README.md
            └── Settings.cs

28 directories, 64 files

标签: MySql canal .NET NLog can

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警