架构师训练营 第五周 总结
分布式缓存架构
缓存:存储在计算机上的一个原始数据复制集,以便于访问,是介于数据访问者和数据源之间的一种高速存储,当数据需要多次读取的时候,用于加快读取速度。
缓存数据存储使用Hash表实现,本质是数组。
缓存的关键指标:缓存命中率。
影响缓存命中率的主要指标
缓存键集合大小
缓存可使用内存空间
缓存对象生存时间
缓存种类
通读缓存(read-through)
代理缓存
反向代理缓存
多层反向代理缓存
内容分发网络(CDN)
盘路缓存(cache-aside)
对象缓存
分布式对象缓存
分布式对象缓存的一致性哈希算法
无虚拟节点的一致性哈希算法缺点:节点的Hash值不均衡,导致缓存负载不均衡,增加节点不能减轻现有各节点的压力
解决方法:增加虚拟节点
缓存为什么能显著提升性能
缓存数据通常来自内存
缓存数据是最终结果形态,不需要中间计算
缓存降低数据库、磁盘、网络的负载压力,使得这些IO设备获得更好的响应特性
缓存的使用场景问题
频繁修改的数据:一般读写比在2:1以上,使用缓存才有意义
没有热点数据的访问,使用缓存没有意义
使用缓存带来数据不一致问题,可在数据更新时通知缓存失效
缓存雪崩
缓存预热
缓存穿透:将不存在的数据也缓存起来,并设定一个较短的失效时间
消息队列和异步架构
同步调用与异步调用
采用消息队列构建异步调用架构,包含:
消息生产者
消息队列
消息消费者
两种模型:点对点模型和发布订阅模型
消息队列的好处
实现异步处理,提升处理性能
更好的伸缩性
削峰填谷
失败隔离和自我修复
解耦
事件驱动架构EDA
耦合表面积小
负载均衡架构
HTTP重定向负载均衡
DNS负载均衡
反向代理负载均衡:工作在第7层
IP负载均衡:工作在第3层,一般瓶颈为网络出口带宽
数据链路层负载均衡:工作在第2层,目前大型互联网企业常用方案
应用服务器集群的Session 管理方式:
Session复制
Session绑定
利用Cookie记录Session
Session服务器:目前常用方案
分布式数据库
MySQL复制:主从复制,一主多从复制,主主复制,主主失效恢复
评论