Canal

基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费,Canal将自己伪装成MySQL从服务器,从而获取主服务器的数据

MySQL配置

修改mysql配置,修改完重启服务
my.cnf(linux)或者my.ini(windows)

1
2
3
4
[mysqld]
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复

Canal配置

1
2
3
4
5
6
7
8
9
10
.....
# 指定rabbitmq
canal.serverMode = rabbitmq
...
# rabbitmq 设置
canal.mq.servers = 192.168.5.4 ## 注意不要加端口号,不然会报IPV6错误。
canal.mq.vhost=/
canal.mq.exchange=exchange.trade.order
canal.mq.username=admin
canal.mq.password=admin
1
2
3
4
5
6
7
8
9
10
canal.instance.mysql.slaveId=9999
...
# position info
canal.instance.master.address=192.168.3.157:3306 ## 数据库地址
# enable druid Decrypt database password
canal.instance.defaultDatabaseName=file ## 数据库名


canal.mq.topic=example # 路由键
...

测试

mysql插入数据

1
insert into test values (10,10);

rabbitmq

1
message body is {"data":[{"id":"10","number":"10"}],"database":"test","es":1656042929000,"id":9,"isDdl":false,"mysqlType":{"id":"int","number":"int"},"old":null,"pkNames":["id"],"sql":"","sqlType":{"id":4,"number":4},"table":"test","ts":1656042930093,"type":"INSERT"}

本站总访问量:次本站总访问数:人
本站由 Peng Tong 使用 Stellar 1.29.1 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。