阿里canal的理解

阿里Canal是一款基于MySQL binlog解析的增量数据订阅与消费的中间件,用于多机房同步、异构表同步等场景。它模拟MySQL slave交互,接收master的binlog并解析,通过EventParser、EventSink、EventStore和metaManager等组件实现高效同步。Canal提供了更灵活的架构,支持多线程同步,压缩binlog减少网络压力,解决了MySQL主从同步的局限。
摘要由CSDN通过智能技术生成

一:什么是canal

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

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

二:canal的工作机制

1.mysql主从复制的工作机制:

复制过程分成三步:

(1) Master主库将改变记录,写到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events,可以通过show binlog events进行查看);

(2) Slave从库向mysql master发送dump协议,将master主库的binary log events拷贝到它的中继日志(relay log);

(3) Slave从库读取并重做中继日志中的事件,将改变的数据同步到自己的数据库。

 

Binary Log:包含了一些数据库的事件,这些事件描述了数据库的改动,如建表、数据改动等。

 

2. canal的工作机制:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值