该canal集成了java,无须繁琐的安装,直接配置几个参数即可实现mysql-canal-kafka
Mysql 环境配置
一、binlog 格式设置
调整 mysql 参数至如下即可。
mysql> show variables like 'binlog_format';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW |
+---------------+-------+
1 row in set (0.00 sec)
参考配置(my.cnf):
[mysqld]
character_set_server = utf8
init_connect =
'SET NAMES utf8'
server-id =
1
log_bin = mysql-bin
binlog_format = row
expire_logs_days =
30
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
修改好上述配置后,最好再运行一次 flush logs 命令
二、super privilege user
线下测试默认数据库是可以用 root 的,有 root 用 root 即可。
Kafka 环境配置
这个安装比较简单,网上都有,掠过,canal需要配置kafka的broker地址和topic
Zookeeper 环境配置
线上使用的 zookeeper 为 3.4.6 版本,部署到某个地方,微调 zoo.cfg,启动即可。
Canal 环境配置
一、部署
下载 canal-lite.xxx (附件过大无法上传,有需求请留言)到目标位置,运行以下命令:
cat canal-lite.x* > canal.tar.gz
tar -zxvf canal.tar.gz
canal 需要 java 版本 >= 1.7 才能运行。开启和关闭方式分别为 sh bin/startup.sh
和 sh bin/stop.sh
二、配置修改
canal 需要修改的配置在以下两个位置:
conf/canal.properties
conf/example/instance.properties
其中 example 为 destination 名称,如果和其他 canal 混用 zookeeper,请保证 destination 不会冲突。
1
2
3
4
5
# canal 本身会绑定到一个端口上,需要保证这个端口没有被占用
canal.port =
3406
# canal 所依赖的 zookeeper 地址
canal.zkServers =
127.0
.
0.1
:
2181
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# canal 连接至 mysql 时所使用的 slave id,需要保证连接至同一个 mysql 的 id 互相不冲突
canal.instance.mysql.slaveId =
123456
# canal 连接至 mysql 时所使用的地址/账号/密码
canal.instance.master.address =
127.0
.
0.1
:
3306
canal.instance.dbUsername = root
canal.instance.dbPassword =
123456
# mapping database to topicstrategy
# format: db1:topic1,db2:topic2,...
canal.instance.topicMapping = orders:db_test,test:db_test
# partition strategy
canal.instance.partitionByPrimaryEnable =
true
# partition by a specific column, only effective when partitionByPrimary = False
# format: name of the column
canal.instance.partitionColumn =
# kafka broker address
canal.brokerAddress =