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 配置文件内容
canal.instance.master.address=127.0.0.1:3306
canal.instance.dbUsername=root
canal.instance.dbPassword

本文详细介绍了Canal如何实现MySQL到Redis的数据一致性,包括Canal的工作原理、环境搭建步骤,涉及MySQL配置、Canal服务端与客户端设置、Zookeeper和Kafka的部署。通过Canal,可以实现数据库变更实时同步到Redis。
最低0.47元/天 解锁文章
3412

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



