简介
canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费

工作原理
canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送 dump 协议
MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )
canal 解析 binary log 对象(原始为 byte 流)
QuickStart
show variables like 'log_bin';
show variables like 'binlog_format';

MySQL , 需要先开启 Binlog 写入功能,配置 binlog-format 为 ROW 模式
[mysqld]
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复

授权 canal 链接 MySQL 账号具有作为 MySQL slave 的权限, 如果已有账户可直接 grant
CREATE USER canal IDENTIFIED BY 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;
下载
Releases · alibaba/canal · GitHub

# 客户端
canal.adapter-1.1.8-SNAPSHOT.tar.gz
# 管理端
canal.admin-1.1.8-SNAPSHOT.tar.gz
# 服务端
canal.deployer-1.1.8-SNAPSHOT.tar.gz
配置修改
vi conf/example/instance.properties
启动sh bin/startup.sh
windows下启动报错Unrecognized VM option 'PermSize=128m',是因为在jdk8(含)以后,永久代被移除了,所以虚拟机的启动参数MaxPermSize(最大永久代大小)不可用,去掉-XX:PermSize=128m就可以了。
Caused by: java.lang.ClassNotFoundException: com.alibaba.druid.pool.DruidDataSource



最低0.47元/天 解锁文章
1533

被折叠的 条评论
为什么被折叠?



