【Canal】【MySQL】解密阿里Canal :(一)Canal工作原理

  • 我们先回顾一下,传统MySQL主从复制工作原理:
1、现在有一个客户端,往主库(Master)中写入一条数据;

2、主库(Master)会记录一条数据变化,向BinLog中插入一条数据日志;

3、I/O Thread会不停的调度(即过一会执行一下),向BinLog中发起一个请求,读取一下BinLog中的二进制日志

4、BinLog接收到请求后,把数据发送到从库(Slave)中的;

5、I/O Thread 接收到数据以后,把数据写入到RelayLog中;

6、SQL Thread也是会不停的调度,向Relay Log发送一个请求,读取一下RelayLog中的临时日志

7、RelayLog接收到请求后,把数据发送到SQL Thread,并根据日志把数据写入从库中

  • 接下来,我们也先看一下Canal的工作原理:
1、canal其实模拟的Mysql Slave的交互协议,把自己伪装成Mysql Slave,

    向Mysql Master发送一个dump请求;

2、Master收到这个dump请求后,开始推送binlog日志给slave(这个slave指canal);

3、canal解析master发送过的binlog对象(当前binlog原始数据为byte流)

  • 一般Canal的使用场景有什么呢?
1、数据库实时备份

2、业务cache刷新

3、search build (搜索的构建)

4、价格变化等重要业务信息

5、带业务逻辑的增量数据处理

6、跨数据库的数据备份(异构数据同步),例如:mysql => oracle,
     mysql => mongo,mysql => redis, mysql=>elasticsearch 等

当前canal主要支持的Mysql版本有:5.1.x、5.5.x、5.6.x、5.7.x、8.0.x。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值