一、canal简介
canal主要用途是对MySQL数据库增量日志进行解析,提供增量数据的订阅和消费,简单说就是可以对MySQL的增量数据进行实时同步,支持同步到MySQL、Elasticsearch、HBase等数据存储中去。
二、canal工作原理
canal会模拟MySQL主库和从库的交互协议,从而伪装成MySQL的从库,然后向MySQL主库发送dump协议,MySQL主库收到dump请求会向canal推送binlog,canal通过解析binlog将数据同步到其他存储中去。

三、canal使用
-
首先我们需要下载canal的各个组件
canal-server、canal-adapter、canal-admin,下载地址:Releases · alibaba/canal · GitHub -

-
canal的各个组件的用途各不相同,下面分别介绍下:
-
canal-server(canal-deploy):可以直接监听MySQL的binlog,把自己伪装成MySQL的从库,只负责接收数据,并不做处理。
-
canal-adapter:相当于canal的客户端,会从canal-server中获取数据,然后对数据进行同步,可以同步到MySQL、Elasticsearch和HBase等存储中去。
-
canal-admin:为canal提供整体配置管理、节点运维等面向运维的功能,提供相对友好的WebUI操作界面,方便更多用户快速和安全的操作。
-
-
由于不同版本的MySQL、Elasticsearch和canal会有兼容性问题,所以我们先对其使用版本做个约定。
-

MySQL配置
由于canal是通过订阅MySQL的binlog来实现数据同步的,所以我们需要开启MySQL的binlog写入功能,并设置binlog-format为ROW模式,我的配置文件为/mydata/mysql/conf/my.cnf,改为如下内容即可;

本文介绍了canal工具,它可对MySQL数据库增量日志解析,实现增量数据实时同步到MySQL、Elasticsearch等存储。阐述了其工作原理,详细说明了canal-server、canal-adapter、canal-admin的使用方法,还进行了数据同步演示,并给出官方文档和配置文件地址。
最低0.47元/天 解锁文章
1万+





