实例介绍
【实例简介】
CanalSharp 是一个基于阿里巴巴开源项目Canal的.NET客户端,专门用于实现MySQL数据库binlog的增量订阅和消费。Canal本身作为一种CDC(Change Data Capture)组件,允许用户跟踪数据库中的数据变更,并据此采取相应措施。
快速入门:
首先,通过NuGet安装CanalSharp:
对于任何使用上的问题,建议通过提交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
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
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论