1 前言
X.1 Canal简介
Canal
是阿里开源的一款基于Mysql数据库binlog的增量订阅和消费组件,通过它可以订阅数据库的binlog日志,然后进行一些数据消费,如数据镜像、数据异构、数据索引、缓存更新等。相对于消息队列,通过这种机制可以实现数据的有序化和一致性。
github地址:GitHub - alibaba/canal: 阿里巴巴 MySQL binlog 增量订阅&消费组件
完整wiki地址:Home · alibaba/canal Wiki · GitHub
X.2 Canal原理
请求、响应、解析
canal工作原理其实也是基于mysql主从同步原理的,所以理解mysql主从同步原理是第一步。
同步原理:
- canal模拟mysql slave与mysql master的交互协议,伪装自己是一个mysql slave,向mysql master发送dump协议;
- mysql master收到