简介
1.1 canal介绍
Canal是一个基于MySQL二进制日志的高性能数据同步系统。Canal广泛用于阿里巴巴集团(包括https://www.taobao.com),以提供可靠的低延迟增量数据管道,github地址:https://github.com/alibaba/canal
Canal Server能够解析MySQL binlog并订阅数据更改,而Canal Client可以实现将更改广播到任何地方,例如数据库和Apache Kafka。
它具有以下功能:
支持所有平台。
支持由Prometheus提供支持的细粒度系统监控。
支持通过不同方式解析和订阅MySQL binlog,例如通过GTID。
支持高性能,实时数据同步。(详见Performance)
Canal Server和Canal Client都支持HA / Scalability,由Apache ZooKeeper提供支持
Docker支持。
缺点:
不支持全量更新,只支持增量更新。
1.2 运作原理
原理很简单:
Canal模拟MySQL的slave的交互协议,伪装成mysql slave,并将转发协议发送到MySQL Master服务器。
MySQL Master接收到转储请求并开始将二进制日志推送到slave(即canal)。
Canal将二进制日志对象解析为自己的数据类型(原始字节流)
如图所示:
准备工作
2.1 下载解压canal-server
通过 github 下载 canal-server release 版本(本次安装文档使用v1.1.4)
root@locahost:/# wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.deployer-1.1.4.tar.gz
解压
tar -zxvf canal.deployer-1.1.4.tar.gz
2.2 下载解压 canal-adapter
通过 github 下载 canal-adapter release 版本(本次安装文档使用v1.1.4)
root@locahost:/# wget https://github.com/alibaba/ca