1、Canal简介
canal 阿里巴巴旗下的一款开源项目,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。通过Canal监听数据库变更,并实时消费变更数据,实现实现数据同步到缓存、ElasticSearch等。我们也可以把canal理解为一个用来同步增量数据的一个工具。
通过Canal我们实现以下业务场景:
- 数据库镜像
- 数据库实时备份
- 索引构建和实时维护(拆分异构索引、倒排索引等)
- 业务 cache 刷新
- 带业务逻辑的增量数据处理
2、Canal安装
2.1 修改mysql数据库配置,开启 Binlog 写入功能
进入到docker的mysql容器,修改文件/etc/mysql/mysql.conf.d/mysqld.cnf,添加以下内容,并重启
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复