开发者社区> 小明的Java问道之路> 正文

【架构】千万级购物车系统缓存架构方案

简介: 本文主要介绍redis在千万级系统中设计架构方案,包括主架构设计、缓存一致性方案、大value处理方案和redis限流和故障恢复降级
+关注继续查看

✌ 作者简介:小明的Java问道之路,某大型金融互联网公司,后端研发高级工程师,擅长订单/交易领域的高安全/可用/并发/性能的架构设计与落地,专注于研究计算机底层与金融科技领域技术

🏆 CSDN博客专家/Java领域新星创作者、系统架构设计师

🔥 如果此文还不错的话,还请关注、点赞、收藏三连支持一下博主


本文导读:本文主要介绍redis在千万级系统中设计架构方案,包括主架构设计、缓存一致性方案、大value处理方案和redis限流和故障恢复降级


缓存架构主架构图:

主架构中包括缓存集群、缓存限流、缓存大value处理、HotKey探测系统、redis故障恢复降级和redis-mysql数据同步

image.png

图1-总架构图


缓存一致性解决方案:

一、对于所有的DB操作都不去添加具体的删除缓存的操作,而是通过canal监听binlog的方式

二、待数据确认已提交到数据库后,通过监听的变化,解析出对应的数据后,过滤掉非增删改的

binlog

三、然后通过常量类配置的需要处理数据一致性的相关表以及关键字段和缓存前缀key,进行组装出需要进行删除的缓存key。并且通过mq的ack机制来保证缓存一定会被删除掉。

image.png

图2-缓存一致性解决方案


缓存限流解决方案:

防止redis崩溃之后,系统无法正常运转,所以我们需要做一个降级处理。

系统操作redis的所有方法一般都是通过RedisCache和Redislock两个类来处理的,所以我们通过AOP切面的方式,对这两个类中的所有方法做一个切面,如果在这里执行redis操作的时候,redis挂掉了,连接失败了,那么方法会抛异常,我们在切面处理方法上,捕捉异常,然后记录一下是redis挂掉还是网络暂时的波动

image.pngimage.gif

图3-缓存限流解决方案


 大Value处理方案:

一、搭建的redis集群
二、在canal中已经创建好了监听,存储到mysql中redis_large_key_log表的canal instance
三、在每天凌晨3点,会将Redis中的大key(value)数据,通过canal instance发送到 MQ
四、消费redis_large_key_log表的binlog数据,该数据包含Redis的大key(value)信息
五、将大value切分成多个key,返回时拼接组装

image.png

图4-大V处理方案

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
可观测系统如何识别网站有多少文件命中了缓存?
文章首发于掘金,属于小众的技术文,讲的是如何判断网站使用的文件是缓存,也就是disk cache ,memory cache 还有304
20 0
从2开始,在Go语言后端业务系统中引入缓存
从2开始,在Go语言后端业务系统中引入缓存
64 0
OKCC呼中中心系统怎么清理录音与缓存
当我们开始知道开机速度能打败全国百分之多少电脑的时候,系统清理越来越成为人民群众的刚需。 广大用户存在一个朴素的认知:随着使用时间的增长,系统越来越慢,系统里面存在的垃圾越积越多,是普遍性的规律。各种看得见看不见的软件越来越多,各种需要不需要的功能持续增加,系统的硬件算力陆陆续续被占用,各种软件持续产生的数据缺乏清理维护,导致用户的使用体验持续下降。
64 0
亿级流量电商详情页系统实战:缓存架构+高可用服务架构+微服务架构
亿级流量电商详情页系统的完整大型架构。同时最重要的是,在完全真实的大型电商详情页系统架构下,全流程实战了整套微服务架构,包含了基于领域驱动设计进行微服务建模、Spring Cloud、基于DevOps的持续交付流水线与自动化测试套件、基于Docker的自动化部署。此外,还包含了大型电商详情页系统架构中的多种复杂架构设计的详细介绍。
174 0
相亲app开发,缓存在整个系统中的重要地位
相亲app开发,缓存在整个系统中的重要地位
45 0
Linux网络管理之arp命令 – 操纵系统arp缓存(地址解析协议)
arp命令的英文全拼“Address Resolution Protocol” 。该命令用于操作主机的arp缓存,它可以显示arp缓存中的所有条目、删除指定的条目或者添加静态的ip地址与MAC地址对应关系。
106 0
百万QPS系统的缓存实践
标题有些吸引眼球了,但并不浮夸,甚至还会远远超过百万,现在的平均响应时间在1ms内,0.08ms左右 如此高的QPS,如此低的AVG,为什么会有如此效果,关键点可能就在多级缓存上 在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流
222 0
性能分析(7)- 未利用系统缓存导致 I/O 缓慢案例
性能分析(7)- 未利用系统缓存导致 I/O 缓慢案例
201 0
高并发系统三大利器之缓存
高并发系统三大利器之缓存
92 0
啊哈!C盘又满了?快修改IntelliJ IDEA默认系统缓存cache目录路径
啊哈!C盘又满了?快修改IntelliJ IDEA默认系统缓存cache目录路径
186 0
+关注
小明的Java问道之路
某大型金融企业后端高级工程师、Java领域优质创作者、云享专家,专注于研究计算机底层/Java/架构/设计模式/算法
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
分布式高并发缓存6.0
立即下载
高并发分布式缓存Redis6.0
立即下载
用户态高速块缓存方案
立即下载