主要用途是基于
MySQL
数据库增量日志解析,提供增量数据订阅和消费。GitHub地址:https://github.com/alibaba/canal
Canal
的好处在于对业务代码没有侵入,因为是基于监听BinLog
日志去进行同步数据的。
- 实时性也能做到准实时,是很多企业一种比较常见的数据同步的方案。
工作原理
Canal
是一个伪装成Slave
订阅MySQL
的BinLog
,实现数据同步的中间件。
Canal
模拟MySQL Slave
的交互协议,伪装自己为MySQL Slave
,向MySQL Master
发送Dump
协议MySQL Master
收到Dump
请求,开始推送BinLog
给Slave
(即Canal
)Canal
解析BinLog
对象(原始为Byte
流)