架构师训练营第五周总结
笔记
缓存的类型
CPU 缓存
操作系统缓存
数据库缓存
JVM 编译缓存
CDN 缓存
代理与反向代理缓存
前端缓存
应用程序缓存
分布式对象缓存
缓存的指标
缓存命中率
影响因子
缓存键集合大小
缓存可使用内存空间
缓存对象生存时间
代理缓存模式
通读缓存
常规代理缓存
反向代理缓存
多层反向代理缓存
内容分发网络(CDN)
旁路缓存
对象缓存是一种旁路缓存,旁路缓存通常是一个独立的键值对(key-value)存储。
不适合使用缓存的场景
频繁修改的数据
没有热点的访问
数据不一致与脏读
缓存的相关问题
缓存雪崩
缓存穿透
缓存预热
查询操作使用缓存,修改操作使用 MQ,常用的 MQ 有 ActiveMQ、RabbitMQ、RocketMQ、Kafka;
MQ 可以进行解耦、削峰填谷、异步以及更好的伸缩性;
负载均衡
传统的负载均衡架构
HTTP 重定向负载均衡
DNS 负载均衡:利用一个域名可以映射多个 IP 的特性;
反向代理负载均衡:相比较 IP 负载均衡,需要进行多次的 TCP 和 HTTP 的相互转换;
IP 负载均衡:相比较数据链路负载均衡,负载均衡服务器需要承担返回请求数据的作用;
数据链路负载均衡:应用服务器直接返回数据到客户端,这样是大厂中最常用的一种模式;
负载均衡算法
轮询
加权轮询(最常用)
随机
最少连接
源地址散列:会有会话粘滞特性,但是考虑到服务器宕机等情况,实际使用较少;
集群的 Session 管理
Session 复制:频繁复制,且 session 在所有服务器中都有备份,实用性降低
Session 绑定:使用源地址散列
利用 Cookie 记录 Session:来回传输数据需要携带 Cookie
Session 服务器:使用第三方 Session 服务器,专门存储管理 Session,但是需要集群来维持高可用,而集群又涉及到数据一致性问题;
评论