canal 是阿里巴巴开源的 MySQL binlog 增量订阅&消费组件
canal 工作原理:
- canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议
- MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )
- canal 解析 binary log 对象(原始为 byte 流)
本文使用的 canal 版本为 v1.1.4
一、canal 安装与配置
安装与配置可以参考:QuickStart,我的 conf/example/instance.properties 配置:
1 | ## mysql serverId , v1.0.26+ will autoGen |
二、客户端使用
添加引用:
1 | <dependency> |
代码:
1 | @Component |
CanalConnector 中的参数来自于 /conf/canal.properties:
| |
-|-
port | canal.port
destination | canal.destinations
username | canal.instance.tsdb.dbUsername
password | canal.instance.tsdb.dbPassword
参考