canal实现原理
1、canal server端会伪装成mysql从节点,去读取mysql主节点binlog文件,实现增量同步
2、canal server端将数据以json格式同步到客户端,MQ消费者消费消息,将数据同步到redis
环境搭建
配置Mysql服务器
1、配置MySQL的 my.cnf 开启允许基于binlog文件主从同步,在[mysqld]下添加以下配置
log-bin=mysql-bin #添加这一行就ok
binlog-format=ROW #选择row模式
server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复
配置该文件后,重启mysql服务器即可
2、添加cannl的账号 或者直接使用自己的root账号
drop user 'canal'@'%';
CREATE USER 'canal'@'%' IDENTIFIED BY'canal';
grant all privileges on *.* to 'canal'@'%'identified by 'canal';
flush privileges;
构建CanalService
1、下载canal
2、修改\conf\example下的instance.properties 配置文件内容