Canal [kə'næl],译意为水道/管道/沟渠,canal是阿里巴巴旗下的一款开源项目,基于Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。GitHub的地址:https://github.com/alibaba/canal
Canal是基于mysql的主从同步来实现的,MySQL主从同步的原理如下:
-
1)MySQL master 将数据变更写入二进制日志( binary log),其中记录的数据叫做binary log events
-
2)MySQL slave 将 master 的 binary log events拷贝到它的中继日志(relay log)
-
3)MySQL slave 重放 relay log 中事件,将数据变更反映它自己的数据
而Canal就是把自己伪装成MySQL的一个slave节点,从而监听master的binary log变化。再把得到的变化信息通知给Canal的客户端,进而完成对其它数据库的同步。
标签:Canal,binary,slave,log,master,MySQL,组件 From: https://www.cnblogs.com/wekenyblog/p/17509668.html