学习笔记——认识Canal

Canal

简介

Canal是阿里开源的根据MySQL数据库binary Log增量订阅&消费的组件

定位:基于对数据库日志的解析,提供增量数据订阅&消费,开源部分支持MySQL(也支持mariaDB),阿里内部已支持Oracle的解析。

个人理解:监听日志,模拟slave,将数据同步到其他存储中

常见作用:

  • 数据库镜像
  • 数据库实时备份
  • 业务cache刷新

原理

canal基础

Canal基本原理

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

MySQL主从复制

MySQL数据库主从复制原理

  1. master将操作记录到二进制日志(binary log)中(二进制日志事件,binary log events,可以通过show binlog events进行查看);
  2. slave将master的binary log events拷贝到它的中继日志(relay log);slave解析中继日志后,执行新加入的操作,将改变反映到slave自己的数据中。

应用架构

Canal应用架构
  • Canal包含Canal Server和Canal Client
    • 其中Canal Server中包含多个Canal Instance
    • 每个Canal Instance对应一个MySQL Instance和一个Canal Client

整体结构

未命名
  • Canal Server代表一个Canal运行实例,对应一个JVM。
  • instance对应于一个数据队列(1个server对应1…n个instance)
  • Instance子模块
    • eventParser (数据源接入,模拟slave协议和master进行交互,协议解析)
    • eventSink (Parser和Store链接器,进行数据过滤,加工,分发的工作)
    • eventStore (数据存储)
    • metaManager (增量订阅&消费信息管理器)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值