canal HA部署

1、服务器分配

IP 类型 端口号 其它 版本号
10.200.48.67 Zookeeper 2181
10.200.48.68
10.200.48.69
10.200.48.70
10.200.48.70 mysql 3306 Db:zlz_test
10.200.48.70 canal v1.0.24
10.200.48.71

2、下载canal

https://github.com/alibaba/canal/releases ,使用版本v1.0.24
下载canal.deployer-1.0.24.tar.gz
Linux上执行如下命令:
wget https://github.com/alibaba/canal/releases/download/canal-1.0.24/canal.deployer-1.0.24.tar.gz

3、mysql初始化

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

[mysqld]
log-bin=mysql-bin #添加这一行就ok
binlog-format=ROW #选择row模式
server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复

重启mysql
systemctl restart mariadb

b. Canal的原理是模拟自已为mysql slave,所以这里一定需要做为mysql slave的相关权限。

CREATE USER canal IDENTIFIED BY ‘canal’;
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘canal’@’%’;
– GRANT ALL PRIVILEGES ON . TO ‘canal’@’%’ ;
FLUSH PRIVILEGES;

4、70服务器安装canal(单机版)

步骤1:解压缩

mkdir /tmp/canal
tar zxvf canal.deployer-1.0.24.tar.gz -C /tmp/canal

步骤2:创建canal instance

mkdir conf/canal_bj/ #连接业务库mysql
cp …/example/instance.properties ./ #复制example目录下的instance.properties文件到本地

步骤3:配置修改

应用参数:
vi conf/canal_bj/instance.properties
#################################################
## mysql serverId
canal.instance.mysql.slaveId = 1235

# position info
canal.instance.master.address = 10.200.48.70:3306
canal.instance.master.journal.name =
canal.instance.master.position =
canal.instance.master.timestamp =

#canal.instance.standby.address =
#canal.instance.standby.journal.name =
#canal.instance.standby.position =
#canal.instance.standby.timestamp =

# username/password
canal.instance.dbUsername = canal
canal.instance.dbPassword = canal
canal.instance.defaultDatabaseName = zlz_test
canal.instance.connectionCharset = UTF-8

# table regex
canal.instance.filter.regex = .\…
# table black regex
canal.instance.filter.black.regex =

#################################################

步骤4:准备启动

sh bin/startup.sh

步骤5:查看日志

Canal运行日志
tail -f logs/canal/canal.log
canal HA部署
具体instance的日志:
tail -f logs/canal_bj/canal_bj.log

步骤6:关闭

sh bin/stop.sh
canal HA部署

5、Canal HA配置

步骤1:按【4】配置71服务器

vi conf/canal_bj/instance.properties
以下参数要进行调整

## mysql serverId
canal.instance.mysql.slaveId = 1236

步骤2:70,71两台服务器都需要修改canal.properties,加上zookeeper配置

下图中标红的两个位置都需要调整
canal HA部署
注意: 两台机器上的instance目录的名字需要保证完全一致,HA模式是依赖于instance name进行管理,同时必须都选择default-instance.xml配置。

步骤3:启动两台机器的canal

-----------
ssh 10.200.48.70

sh bin/startup.sh
-----------
ssh 10.200.48.71
sh bin/startup.sh
启动后,你可以查看logs/canal_bj/canal_bj.log,只会看到一台机器上出现了启动或成功的日志。