Canal 基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费
Canal 官方文档:https://github.com/alibaba/canal
- MySQL配置
# 开启binlog,需重启
[mysqld]
log-bin=mysql-bin
binlog-format=ROW
server_id=1# 查看二进制日志文件的信息
show master status;【建议】根据自身需要新建MySQL用户canal,以下仅参考
# CREATE USER 'username'@'host' IDENTIFIED BY 'password';
CREATE USER 'canal'@'localhost' IDENTIFIED BY '123456';
# GRANT privileges ON 'databasename'.'tablename' TO 'username'@'host'
GRANT ALL ON *.* TO 'canal'@'localhost';
# 刷新权限
FLUSH PRIVILEGES;- 下载 canal.deployer 最新版并解压。
先自行创建 RabbitMQ 的交换机,并绑定队列;
conf/example/就是一个实例,可以直接重命名。需要多个就复制多个;
conf/example/instance.properties修改数据库连接相关配置和mq监听配置;
conf/canal.properties修改canal.serverMode = RabbitMQ和RabbitMQ配置。 - 启动 Canal,
MacOS/Linux使用*.sh;Windows使用bin/startup.bat;
有问题请查看logs/。 - 启动本项目。
仅打印数据库变更记录,具体业务逻辑根据自身需要实现。