springboot吧 关注:5,091贴子:16,362
  • 0回复贴,共1

Canal+Kafka实现MySQL与Redis数据同步

只看楼主收藏回复

前言
在很多业务情况下,我们都会在系统中加入redis缓存做查询优化。
如果数据库数据发生更新,这时候就需要在业务代码中写一段同步更新redis的代码。
这种数据同步的代码跟业务代码糅合在一起会不太优雅,能不能把这些数据同步的代码抽出来形成一个独立的模块呢,答案是可以的。
架构图
canal是一个伪装成slave订阅mysql的binlog,实现数据同步的中间件。上一篇文章《canal入门》
我已经介绍了最简单的使用方法,也就是tcp模式。
实际上canal是支持直接发送到MQ的,目前最新版是支持主流的三种MQ:Kafka、RocketMQ、RabbitMQ。而canal的RabbitMQ模式目前是有一定的bug,所以一般使用Kafka或者RocketMQ。
https://blog.roncoo.com/article/1295909309436481537


1楼2020-08-19 11:16回复