一、简单介绍一下Canal
Canal简介:https://github.com/alibaba/canal/wiki/简介
Canal Server:该程序是Canal官方提供程序。
Canal Client:该程序需要自己开发,用于接收Canal的数据(此案例以Java代码为例)。
集群挂载流程如下:
- 同时启动2个Canal Server,仅有一个Canal Server和一个Canal Client可运行,另外都在阻塞等待;
- 当正在运行的Canal Server或者Canal Client下线了,则另一台会自动挂载。
高可用集群实现:Canal Server端需要配置canal.zkServers;而Canal Client端只需要配置canal.zk.address即可。
二、MySQL开启 Binlog 同步
参考官方文档:https://github.com/alibaba/canal/wiki/QuickStart 的【准备】章节。
三、Zookeeper的准备
Canal是以Zookeeper作为服务发现和注册的,所以得安装一个Zookeeper才能实现集群。
Zookeeper的下载地址(注意:一定要下 apache-zookeeper-3.5.5-bin.tar.gz 包):https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz
Zookeeper UI的下载地址:
https://github.com/DeemOpen/zkui
四、Canal Server部署
参考官方文档:https://github.com/alibaba/canal/wiki/QuickStart 的【启动】章节
第一步:修改配置文件
# 修改配置文件 {canal_base}/conf/canal.properties
canal.zkServers=127.0.0.1:2181
第二步:复制多一个canal文件夹,暂且命名该文件夹为 canal_slave
# 修改 {canal_slave_base}/conf/canal.properties 文件
canal.port=12111
canal.metrics.pull.port=12112
canal.zkServers=127.0.0.1:2181
五、Canal Client部署
参考项目:https://github.com/fomeiherz/canal-example
第一步:修改配置文件
# 修改 canal-example/src/main/resources/application.properties 配置文件
server.port=9091
canal.zk.address=127.0.0.1:2181
第二步:复制一个项目,暂且定为 canal-example-slave
![](/qrcode.jpg)
# 修改 canal-example-slave/src/main/resources/application.properties 配置文件
server.port=9092
canal.zk.address=127.0.0.1:2181