架构训练营学习笔记:5-1 计算架构模式之多级缓存架构

    本节主要是计算架构。

多级缓存架构

  缓存与缓冲:通常场景是读缓存,写缓冲。

架构训练营学习笔记:5-1 计算架构模式之多级缓存架构_第1张图片

缓存技术的本质:空间换时间,因此缓存架构属于高性能计算 架构。

缓存设计框架

    主要考虑存什么?存多久?存哪里?如何存的问题。

架构训练营学习笔记:5-1 计算架构模式之多级缓存架构_第2张图片

更新机制

过期更新

缓存有效期内一直用缓存,超过有效期后去重新读取。例如:HTTP缓存

定期更新

定期更新缓存

主动更新:

 当数据修改后,主动更新缓存。例如:业务写数据库时更新Redis缓存。

多级缓存架构

架构训练营学习笔记:5-1 计算架构模式之多级缓存架构_第3张图片

 这是一个完整的多级缓存架构,要根据自己的业务场景来考虑,不是都要上CDN。

考虑点:性能需求、架构复杂度。

架构训练营学习笔记:5-1 计算架构模式之多级缓存架构_第4张图片

缓存技术概要介绍

本地缓存

架构训练营学习笔记:5-1 计算架构模式之多级缓存架构_第5张图片

CDN缓存 

架构训练营学习笔记:5-1 计算架构模式之多级缓存架构_第6张图片Content Delivery Network,即内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率,关键技术是内容存储和分发技术。

Web容器缓存

  Web容器缓存一般缓存静态资源,例如图片、JavaScript、CSS等,配合HTTP协议实现缓存

应用缓存+分布式缓存

架构训练营学习笔记:5-1 计算架构模式之多级缓存架构_第7张图片

redis 与memcache的选择

架构训练营学习笔记:5-1 计算架构模式之多级缓存架构_第8张图片

redis相对 均衡,支持复杂数据结构,支持持久化,至于大对象,还可以结合业务来优化。 

下面这张图很有用,很多常见的耗时都有,比如内存、磁盘、机房等,值得收藏。

架构训练营学习笔记:5-1 计算架构模式之多级缓存架构_第9张图片 数据缓存

架构训练营学习笔记:5-1 计算架构模式之多级缓存架构_第10张图片

设计核心:1、用什么缓存系统;2、如何应对数据一致性挑战

应用场景:实时性要求高的业务,读多写少的业务

结果缓存

架构训练营学习笔记:5-1 计算架构模式之多级缓存架构_第11张图片

缓存结果,实时性要求不高。

分布式缓存架构设计思路

架构训练营学习笔记:5-1 计算架构模式之多级缓存架构_第12张图片

 这里上缓存之前,可以先读写分离考虑下,这是一种折中,就是如果这样能满足业务需求,代价更小,架构没有那么复杂。

数据缓存一致性设计

架构训练营学习笔记:5-1 计算架构模式之多级缓存架构_第13张图片

本质是需要保证缓存系统和存储系统实现分布式事务。推荐方案3:先删除缓存再写存储。就是应对异常的情况。

一致性解决方案

架构训练营学习笔记:5-1 计算架构模式之多级缓存架构_第14张图片

其中canal 跟3消息队列原理差不多

缓存穿透

缓存没有发挥作用,业务系统虽然去缓存查询数据,但缓存中没有数据,业务系统需要再次去存储系统中查询数据。

架构训练营学习笔记:5-1 计算架构模式之多级缓存架构_第15张图片

 应对方法:

架构训练营学习笔记:5-1 计算架构模式之多级缓存架构_第16张图片

方法3:缓存预热

应对运营活动、秒杀、大促等场景

  1. 模拟请求触发系统生成缓存,实现比较复杂
  2. 后台按照规则批量生成缓存,实现工作量较大
  3. 灰度发布/预发布触发系统生成缓存(推荐)

方法4:随机失效

缓存有效期设定为一个时间范围内的随机值。应对后台批量生成的缓存

缓存雪崩

缓存失效引起雪崩效应

架构训练营学习笔记:5-1 计算架构模式之多级缓存架构_第17张图片 

缓存雪崩应对方式

架构训练营学习笔记:5-1 计算架构模式之多级缓存架构_第18张图片

缓存雪崩通常是少量的热点key异常导致的,而不是像穿透那种大量的key造成的。即使后台更新,也不能完全保证没问题,例如Redis 内存空间不足,会有淘汰机制,使用随机淘汰也可能导致缓存雪崩。

缓存热点

部分缓存访问量超高。例如:热点事件、突发事件

架构训练营学习笔记:5-1 计算架构模式之多级缓存架构_第19张图片

 

你可能感兴趣的:(架构,学习,笔记)