Canal系列1-Canal介绍

本文介绍了Canal作为一款基于MySQL Binlog解析的增量数据订阅与消费中间件,详细阐述了其工作原理及应用场景,包括如何实现数据同步,并探讨了MySQL Binlog的不同格式及其优缺点。

一. 什么是 Canal

  阿里巴巴 B2B 公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所 以衍生出了同步杭州和美国异地机房的需求,从 2010 年开始,阿里系公司开始逐步的尝试 基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务。

  Canal 是用 Java 开发的基于数据库增量日志解析,提供增量数据订阅&消费的中间件。 目前。Canal 主要支持了 MySQL 的 Binlog 解析,解析完成后才利用 Canal Client 来处理获得 的相关数据。(数据库同步需要阿里的 Otter 中间件,基于 Canal)。

二. MySQL的Binlog

2.1 什么是 Binlog

  MySQL 的二进制日志可以说 MySQL 最重要的日志了,它记录了所有的 DDL 和 DML(除 了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL 的二进 制日志是事务安全型的。

  一般来说开启二进制日志大概会有 1%的性能损耗。二进制有两个最重要的使用场景:

  1. MySQL Replication 在 Master 端开启 Binlog,Master 把它的二进制日志传递给 Slaves
    来达到 Master-Slave 数据一致的目的。
  2. 自然就是数据恢复了,通过使用 MySQL Binlog 工具来使恢复数据。

  二进制日志包括两类文件:二进制日志索引文件(文件名后缀为.index)用于记录所有 的二进制文件,二进制日志文件(文件名后缀为.00000*)记录数据库所有的 DDL 和 DML(除 了数据查询语句)语句事件。

2.2 Binlog的分类

MySQL Binlog 的格式有三种,分别是 STATEMENT,MIXED,ROW

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值