开源基于Canal的开源增量数据订阅&消费中间件
CanalSync
canal 是阿里巴巴开源的一款基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。
我开发的这个CanalSync项目 https://github.com/yuzd/CanalSync ==>觉得不错帮忙给个star谢谢
是基于canal-server之上的数据库同步&消费中间件,
用于可快速搭建消费canal-server的项目。 目前我已实现并开源了如下:
- 数据消费传输到redis组件
- 数据消费传输到rabbitmq组件
- 数据消费传输到mysql数据库组件
示意图
Nuget:
1. 接收canal-server的消息中间件:
Install-Package Canal.Server
2. 解析canal-server消息转出可执行sql的中间件:
Install-Package Canal.SqlParse
如何使用
如果你需要写一个数据消费传输到XXXMQ,用不到反解析成sql的话,只需要引用 Canal.Server中间件。 如果你需要写一个数据消费传输到XXXdb,得用到反解析sql中间件,需要同时引用Canal.Server 和 Canal.SqlParse 这2个中间件。
Canal.Server 如何使用
- 引用 Canal.Server 并appsettings.json 配置canal-server的参数.如下图:
参数说明:
- 创建一个 消费类 必须要 实现: INotificationHandler 接口,例如叫TestHandler
public class TestHandler:INotificationHandler<CanalBody>{
public Task Handle(CanalBody notification)
{
//写消费逻辑
return Task.CompletedTask;;
}
}
- 在startUp 使用并注册 该消费类
//注册了之后 canal-server有新的消息就会进入到TestHandler的Handle方法
services.AddCanalService(produce => produce.RegisterSingleton<TestHandler>());
Canal.SqlParse 如何使用
目前只实现了解析mysql的逻辑,未来会加入sqlserver的解析逻辑!!
//注册使用 connectionString是mysql的数据库连接字符串
services.AddMysqlParseService(connectionString);
// 计划中还未实现
//services.AddSqlserverParseService(connectionString);
在类的构造方法可注入:
如上图,代表将canal-server的数据直接在另外的mysql库里面执行,等于2个mysql数据进行互相同步。
欧洲与中国的2个mysql库 使用上述方法进行同步的测试
结果: 同步速度在100~200qps 有点低,
下一步的优化方案是参考otter。消费端改用用aria2来下载
开源基于Canal的开源增量数据订阅&消费中间件的更多相关文章
- 谈谈对Canal(增量数据订阅与消费)的理解
概述 canal是阿里巴巴旗下的一款开源项目,纯Java开发.基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql(也支持mariaDB). 起源:早期,阿里巴巴B2B公司 ...
- 对 Canal (增量数据订阅与消费)的理解
概述 canal是阿里巴巴旗下的一款开源项目,纯Java开发.基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB). 起源:早期,阿里巴巴B2B公司 ...
- Canal( 增量数据订阅与消费 )的理解及应用
canal是阿里巴巴旗下的一款开源项目,纯Java开发.基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB). 起源:早期,阿里巴巴B2B公司因为存 ...
- 阿里巴巴开源项目: canal 基于mysql数据库binlog的增量订阅&消费
背景 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求.不过早期的数据库同步业务,主要是基于trigger的方式获取增 量变更,不过从2010年开始,阿里系公司开始逐步的 ...
- 阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅&消费
背景 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求.不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝 ...
- alibaba/canal 阿里巴巴 mysql 数据库 binlog 增量订阅&消费组件
基于日志增量订阅&消费支持的业务: 数据库镜像 数据库实时备份 多级索引 (卖家和买家各自分库索引) search build 业务cache刷新 价格变化等重要业务消息 项目介绍 名称:ca ...
- canal —— 阿里巴巴mysql数据库binlog的增量订阅&消费组件
阿里巴巴mysql数据库binlog的增量订阅&消费组件canal ,转载自 https://github.com/alibaba/canal 最新更新 canal QQ讨论群已经建立,群号 ...
- 使用Canal作为mysql的数据同步工具
一.Canal介绍 1.应用场景 在前面的统计分析功能中,我们采取了服务调用获取统计数据,这样耦合度高,效率相对较低,目前我采取另一种实现方式,通过实时同步数据库表的方式实现,例如我们要统计每天注册与 ...
- Canal - 数据同步 - 阿里巴巴 MySQL binlog 增量订阅&消费组件
背景 早期,阿里巴巴 B2B 公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求 ,主要是基于trigger的方式获取增量变更.从 2010 年开始,公司开始逐步尝试数据库日志解析,获取增量变 ...
随机推荐
- QT+OpenGL(01)--实现三角形渲染
1.openglwidget.ui <ui version="4.0"> <author/> <comment/> <exportmacr ...
- Ubuntu1404配置jdk-12.0.2并安装Android Studio教程
最近在学习Android Studio 移动应用程序开发,但Android Studio好像对win10不太友好,所以小帅想在Ubuntu上安装Android Studio.为此小帅还去网上找了相关教 ...
- Visual Studio 2017使用ODT 连接Oracle 数据库出现异常
2019.5.23 更新 突然发现原来是是sqlnet.ora在搞鬼,只要将SQLNET.AUTHENTICATION_SERVICES=(nts) 改为 SQLNET.AUTHENTICATION ...
- 机器学习实战:基于Scikit-Learn和TensorFlow 第5章 支持向量机 学习笔记(硬间隔)
数据挖掘作业,需要实现支持向量机进行分类,记录学习记录 环境:win10,Python 3.7.0 SVM的基本思想:在类别之间拟合可能的最宽的间距,也叫作最大间隔分类 书上提供的源代码绘制了两个图, ...
- Java自学-集合框架 Collection
Java集合框架 Collection Collection是一个接口 步骤 1 : Collection Collection是 Set List Queue和 Deque的接口 Queue: 先进 ...
- php 使用fsockopen 发送http请求
需求背景 在公司开发这么一个需求,每天三次定时催付待客服催付状态的订单,设定每天15.16.17点三次执行job任务来给一批订单打电话催付,需要三个时间点都把待客服催付的订单拨打一遍电话,根据数据组统 ...
- CHIP8模拟器的python3实现-3-指令实现
class Chip8CPU(object): def __init__(self, screen): self.registers = { 'v': [], 'index': 0, 'pc': 0, ...
- ANDROID培训准备资料之Service
在讨论Service 之前,我们需要了解两点,非常重要的两点 (1) Service 不会专门启动一条单独的进程,Service与它所在应用位于同一个进程中 (2) Service也不 ...
- 智能家居-1.基于esp8266的语音控制系统(开篇)
智能家居-1.基于esp8266的语音控制系统(开篇) 智能家居-2.基于esp8266的语音控制系统(硬件篇) 智能家居-3.基于esp8266的语音控制系统(软件篇) apache-apollo安 ...
- 剑指:和为S的两个数字
题目描述 输入一个数组和一个数字 s,在数组中查找两个数,使得它们的和正好是 s. 如果有多对数字的和等于s,输出任意一对即可. 你可以认为每组输入中都至少含有一组满足条件的输出. 样例 输入:[1, ...