开源基于Canal的开源增量数据订阅消费中间件
canal 是阿里巴巴開源的一款基于數(shù)據(jù)庫增量日志解析,提供增量數(shù)據(jù)訂閱&消費,目前主要支持了MySQL(也支持mariaDB)。
我開發(fā)的這個CanalSync項目?https://github.com/yuzd/CanalSync? ?==>覺得不錯幫忙給個star謝謝
是基于canal-server之上的數(shù)據(jù)庫同步&消費中間件,
用于可快速搭建消費canal-server的項目。 目前我已實現(xiàn)并開源了如下:
數(shù)據(jù)消費傳輸?shù)絩edis組件
數(shù)據(jù)消費傳輸?shù)絩abbitmq組件
數(shù)據(jù)消費傳輸?shù)絤ysql數(shù)據(jù)庫組件
Nuget:
1. 接收canal-server的消息中間件:
Install-Package Canal.Server
2. 解析canal-server消息轉(zhuǎn)出可執(zhí)行sql的中間件:
Install-Package Canal.SqlParse
如何使用
如果你需要寫一個數(shù)據(jù)消費傳輸?shù)絏XXMQ,用不到反解析成sql的話,只需要引用 Canal.Server中間件。 如果你需要寫一個數(shù)據(jù)消費傳輸?shù)絏XXdb,得用到反解析sql中間件,需要同時引用Canal.Server 和 Canal.SqlParse 這2個中間件。
Canal.Server 如何使用
引用 Canal.Server 并appsettings.json 配置canal-server的參數(shù).如下圖:
參數(shù)說明:?
創(chuàng)建一個 消費類 必須要 實現(xiàn): INotificationHandler 接口,例如叫TestHandler
在startUp 使用并注冊 該消費類
services.AddCanalService(produce => produce.RegisterSingleton<TestHandler>());
Canal.SqlParse 如何使用
目前只實現(xiàn)了解析mysql的邏輯,未來會加入sqlserver的解析邏輯!!
services.AddMysqlParseService(connectionString);在類的構(gòu)造方法可注入:
如上圖,代表將canal-server的數(shù)據(jù)直接在另外的mysql庫里面執(zhí)行,等于2個mysql數(shù)據(jù)進行互相同步。
歐洲與中國的2個mysql庫 使用上述方法進行同步的測試
結(jié)果: 同步速度在100~200qps?
原文地址:https://www.cnblogs.com/yudongdong/p/11032062.html
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總?http://www.csharpkit.com?
總結(jié)
以上是生活随笔為你收集整理的开源基于Canal的开源增量数据订阅消费中间件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Exceptionless - .Net
- 下一篇: Dapper.Common基于Dappe