canal 全量同步数据_mysql数据同步:阿里canal入门浅析

本文详细介绍了阿里开源的MySQL数据同步工具canal,包括其工作原理、安装配置、docker安装步骤以及通过client API消费数据的示例。canal通过模拟MySQL slave与master的交互,实现数据的增量同步,支持多种数据源和业务场景。
摘要由CSDN通过智能技术生成
坚持原创,共同进步!请关注我,后续分享更精彩!!!

介绍

canal是阿里开源的一款mysql数据同步工具。纯java开发,基于数据库增量日志解析,提供增量数据的订阅&消费,主要支持mysql。可应用以下业务场景:

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

工作原理

mysql工作原理:

45e403949a0fb128524c3d291282d53f.png

从上层来看,复制分成三步:

  1. master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events,可以通过show binlog events进行查看);
  2. slave将master的binary log events拷贝到它的中继日志(relay log);
  3. slave重做中继日志中的事件,将改变反映它自己的数据。

canal工作原理:

6c43d4491d9356605fca7eb7470adcd9.png
  1. canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
  2. mysql master收到dump请求,开始推送binary log给slave(也就是canal)
  3. canal解析binary log对象(原始为byte流)

通过以上原理,很容易理解canal的数据同步逻辑:就是把canal实例伪装为mysql的一个从库实例,通过mysql自有的数据同步机制来达到数据同步的目的。

ec7dbfec3c882e7bd5872048d0f30c02.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值