canal 一个MySQL增量日志解析神器

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

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 流)

使用场景

基于日志增量订阅&消费支持的业务:

  1. 数据库镜像
  2. 数据库实时备份
  3. 多级索引 (卖家和买家各自分库索引)
  4. search build
  5. 业务cache刷新
  6. 价格变化等重要业务消息

快速开始

准备

要使用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表示开启。

下载

下载链接:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值