canal 是什么
canal [kə’næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费,目前主要支持了mysql。
工作原理

- canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送 dump 协议
- MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )
- canal 解析 binary log 对象(原始为 byte 流)
使用场景
基于日志增量订阅&消费支持的业务:
- 数据库镜像
- 数据库实时备份
- 多级索引 (卖家和买家各自分库索引)
- search build
- 业务cache刷新
- 价格变化等重要业务消息
快速开始
准备
要使用canal必须要开启binlog,通过下面语句可以查看binlog是否开启,关于binlog的文章请移步到
show variables like 'log_bin%'

OFF表示没有开启,那么就需要开启binlog,找到mysql配置文件,windows系统配置文件名为my.ini,Linux系统配置文件名为my.conf。
如果不知道配置文件的位置在哪,可以通过SELECT @@datadir 语句查看文件位置

配置文件会在datadir的上一级目录中。
找到配置文件之后,添加如下配置表示开启binlog
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
修改完配置文件之后重启mysql,再使用show variables like 'log_bin%'语句查看binlog是否开启,ON表示开启。

下载
下载链接:

canal是一个用于MySQL数据库增量日志解析的工具,它模拟MySQL slave与master交互,捕获并消费binary log。适用于数据库镜像、实时备份、多级索引、搜索构建和缓存刷新等场景。本文介绍了canal的工作原理、配置、启动以及在SpringBoot中集成canal与RocketMQ的实操过程。
最低0.47元/天 解锁文章

2671

被折叠的 条评论
为什么被折叠?



