数据库同步工具
sqlserver,Mysql数据同步软件

使用阿里巴巴Canal增量订阅&消费组件同步MySQL数据到sqlserver

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

《阿里巴巴的增量订阅&消费组件》 https://github.com/alibaba/canal

早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元。

名称:运河[k’nl]

译意:水道/管道/沟渠

语言:纯java开发

定位:基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql

关键词:mysql binlog解析器/实时/队列和主题

基于日志增量订阅&消费支持的业务:

1.数据库镜像
2.数据库实时备份
3.多级索引 (卖家和买家各自分库索引)
4.search build
5.业务cache刷新
6.价格变化等重要业务消息

mysql主备复制实现

从上层来看,复制分成三步:

master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events,可以通过show binlog events进行查看);
slave将master的binary log events拷贝到它的中继日志(relay log);
slave重做中继日志中的事件,将改变反映它自己的数据。

CentOs7.3 搭建 MySQL 5.7.19 主从复制,以及复制实现细节分析

canal的工作原理

原理相对比较简单:

1.运河模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
2.mysql master收到dump请求,开始推送二进制日志给slave(也就是运河)
3.运河解析二进制对象(原始为字节流)

canal的原理是基于mysql binlog技术,所以这里一定需要开启mysql的binlog写入功能,建议配置binlog模式为row.

针对阿里云RDS账号默认已经有binlog dump权限,不需要任何权限或者binlog设置,可以直接跳过这一步

修改 etc/my.cnf


MySQL 安装

《CentOs7.3 安装 MySQL 5.7.19 二进制版本》

直接下载 访问:https://github.com/alibaba/canal/releases,会列出所有历史的发布版本包 下载方式,比如以1.0.24版本为例子:


or 自己编译


编译完成后,会在根目录下产生target/canal.deployer-$version.tar.gz


应用参数:







本测试项目,选择的是Redis 单机服务。集群也支持

CentOs7.3 搭建 Redis-4.0.1 单机服务

CentOs7.3 搭建 Redis-4.0.1 Cluster 集群服务

alibaba/canal wiki

Canal提供的 ClientExample


克隆,同步MySQL数据到 Redis项目https://github.com/souyunku/YmqExample


打开 项目,运行 测试类

建立canal客户端,从canal中获取数据,并将数据更新至Redis




查看Redis 是否已经同步


  • 作者:鹏磊
  • 出处:http://www.ymq.io
  • Email:
  • 版权归作者所有,转载请注明出处
  • Wechat:关注公众号,搜云库,专注于开发技术的研究与知识分享

未经允许不得转载:数据库同步软件|Mysql数据同步软件|sqlserver数据库同步工具|异构同步 » 使用阿里巴巴Canal增量订阅&消费组件同步MySQL数据到sqlserver

分享到:更多 ()

syncnavigator 8.6.2 企业版

联系我们联系我们