Canal数据同步策略
缓存数据同步的常见方式有三种:
设置有效期:给缓存设置有效期,到期后自动删除。再次查询时更新
优势:简单、方便
缺点:时效性差,缓存过期之前可能不一致
场景:更新频率较低,时效性要求低的业务
同步双写:在修改数据库的同时,直接修改缓存
优势:时效性强,缓存与数据库强一致
缺点:有代码侵入,耦合度高;
场景:对一致性、时效性要求较高的缓存数据
异步通知:修改数据库时发送事件通知,相关服务监听到通知后修改缓存数据
优势:低耦合,可以同时通知多个缓存服务
缺点:时效性一般,可能存在中间不一致状态
场景:时效性要求一般,有多个服务需要同步
而异步实现又可以基于MQ或者Canal来实现:
1)基于MQ的异步通知:
解读:
商品服务完成对数据的修改后,只需要发送一条消息到MQ中。
缓存服务监听MQ消息,然后完成对缓存的更新
依然有少量的代码侵入。
2)基于Canal的通知
解读:
商品服务完成商品修改后,业务直接结束,没有任何代码侵入
Canal监听MySQL变化,当发现变化后,立即通知缓存服务
缓存服务接收到canal通知,更新缓存
代码零侵入
Canal数据同步策略相关推荐
- 数据仓库数据同步策略
1. 实时数仓同步数据 实时数仓数据由Flink源源不断从Kafka当中读数据计算,无需手动同步数据到实时数仓. 2.离线数仓同步数据 2.1 用户行为数据同步 2.1.1 数据通道 用户行为数据由F ...
- springboot实现增量备份_SpringBoot canal数据同步解决方案
SpringBoot canal数据同步解决方案 一.需求 微服务多数据库情况下可以使用canal替代触发器,canal是应阿里巴巴跨机房同步的业务需求而提出的,canal基于数据库的日志解析,获取变 ...
- canal - 数据同步工具
一.应用场景 在前面Echarts - 实现图表显示中,我们使用了服务调用(统计表中的信息通过调用用户模块服务来获取)获取统计信息,这样耦合度高,效率相对较低,目前有另一种方法,通过实时同步数据库表的 ...
- asp.net mvc redis同步mysql_Mysql和Redis数据同步策略 - 元思 - 博客园
为什么对缓存只删除不更新 不更新缓存是防止并发更新导致的数据不一致. 所以为了降低数据不一致的概率,不应该更新缓存,而是直接将其删除, 然后等待下次发生cache miss时再把数据库中的数据同步到缓 ...
- Mysql和Redis数据同步策略
为什么对缓存只删除不更新 不更新缓存是防止并发更新导致的数据不一致. 所以为了降低数据不一致的概率,不应该更新缓存,而是直接将其删除, 然后等待下次发生cache miss时再把数据库中的数据同步到缓 ...
- 数据仓库之数据同步策略
1.数据同步 因为我们需要每天分析的数据都是最新的!!!所以就涉及数据的同步 2.表的种类及其概念: 一般情况下表分为三个类型,分别是实体表.维度表和事务表 2.1 实体表: 实体表,一般是指一个现实 ...
- 光闸mysql同步_mysql跨网域canal数据同步
需求:高密网和低密网之间的mysql文件落地同步. 分析:解决不同网段之间的数据通讯可以采用光闸或者网闸. 解决mysql之间的同步则可以采用canal.利用canal生成数据库变化 ...
- 集群没有leader_ZooKeeper 集群中 Leader 与 Follower 的4种数据同步策略
首先要声明一点,zk集群中,leader服务器有着比较重要的存在,Follower 服务器只是处理非事务性请求,leader服务器主要负责事务性请求,Follower 服务器在遇到事务性请求以后还是会 ...
- Apache ZooKeeper - ZooKeeper 集群中 Leader 与 Follower 的数据同步策略
文章目录 流程图 why ? How ? 何时触发数据同步的机制? 同步哪些数据 同步方式 DIFF 同步 TRUNC+DIFF 同步 TRUNC 同步 SNAP 同步 同步后的处理 源码分析 流程图 ...
最新文章
- MultiRow发现之旅(六)- 使用MultiRow开发票据应用(附源码)
- python官网下载步骤linux-官方下载python源码,编译linux版本的python
- Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向...
- opencv同时开启两个外接USB摄像头采集图像信息,并设置摄像头输出图像的分辨率
- OpenCL 第7课:旋转变换(1)
- 可有可无的Mysql工作技巧
- pycharm同步代码到远程服务器
- Keepalived相关参数说明
- pandas 学习(四)—— 数据处理(清洗)、缺失值的处理
- 课堂练习--最大子数组和
- 送书!60 本签名书!
- 微信公众号开发中的用户账号绑定
- php在线拍照代码,PHP+Javascript实现在线拍照功能实例
- 通过bootstrap4框架制作商城网页
- 采用commons-emai发送电子邮件
- nandflash地址的物理地址,逻辑地址,spare地址等理解
- 迪普科技“高”在哪里?
- 计算机中信息的表示方法 教案,计算机中的数的表示教案
- 三极管的基础知识(下)②
- 数字手写识别——Java实现KNN算法