Canal+Kafka实现MySql与Redis数据一致性
在生产环境中,经常会遇到MySql与Redis数据不一致的问题。那么如何能够保证MySql与Redis数据一致性的问题呢?话不多说,咱们直接上解决方案。 如果对Canal还不太了解的可以先去看一下官方文档: https://github.com/alibaba/canal 首先,咱们得先开启MySql的允许基于BinLog文件主从复制。因为Canal的核心原理也是相当于把自己当成MySql的一个从节点,然后去订阅主节点的BinLog日志。 开启BinLog文件配置 1. 配置 MySQL 的 my.ini/my.cnf 开启 允许基于 binlog 文件主从同步 log-bin=mysql-bin #添加这一行就ok binlog-format=ROW #选择row模式 server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复 配置 该文件后,重启 mysql 服务器即可 show variables like 'log_bin';//查询MySql是否开启了log_bin. 没有开启 log_bin 的值是 OFF, 开启之后是 ON 2. 添加cannl 的账号 或者直接使用自己的 root 账号。添加完后 一定要检查 mysql user 权限为 y(SELECT* from `user`