架构师训练营第 1 期第 五 周学习总结
分布式缓存架构:架构原理和使用中的注意事项
缓存:
存储再计算机上的一个原始数据复制集,缓存介于数据访问者和数据源之间的一种高速存储,当数据多次读取时,用于加快读取的速度
缓存数据存储:
可采用Hash表
缓存关键指标
缓存命中率:
缓存是否有效依赖于能多少次重用同一个缓存响应业务请求,这个度量标准被称为缓存命中率
如果查询一个缓存,十次查询九次能够得到正确结果,那么他的命中率是90%
影响缓存命中的主要指标:
缓存健集合大小:缓存的对象使用缓存键进行识别
缓存可使用内存空间:决定缓存对象的平均大小和缓存对象数量
缓存对象生存时间:对象缓存的时间越长,缓存对象被重用的可能性就约稿
通读缓存
代理缓存、反向代理缓存、CDN缓存都是通读缓存
通读缓存给客户端返回缓存资源,并在请求未命中时获取实际数据
客户端连接的事通过缓存而不是响应的原始服务器
旁路缓存
对象缓存是一种旁路缓存,旁路缓存通常时一个独立的键值对存储。
浏览器缓存
本地对象缓存
对象直接缓存在应用程序内存中
对象存储在共享内存,同一台机器的多个进程可以访问它们
缓存服务器作为独立应用和应用程序部署在同一个服务器上
缓存显著提升性能原因
缓存数据通常来自内存,比磁盘的数据有更快的访问速度
缓存存储数据的最终结果形态,不需要中间计算,减少CPU资源的消耗
缓存降低数据库、磁盘、网络的负载压力,使这些I/O设备获得更好的响应特性
缓存注意点:
频繁修改的数据:徒增系统负担
没有热点的访问:浪费宝贵的内存资源
数据不一致与脏读:
缓存雪崩
缓存预热:启动时加载热点数据,减少对系统性能和数据库负载压力
缓存穿透:
消息队列和异步架构
写数据用消息队列实现异步架构来实现优化
消息队列的好处:
实现异步处理,提升处理性能
更好的收缩性
削峰填谷
事件驱动架构EDA
好处
解耦合
削峰填谷
失败隔离
线性伸缩
新功能扩展
负载均衡架构
http重定向负责均衡:
一次请求变两个请求,请求效率降低
安全性比较差
DNS负载均衡
域名解析负载均衡
域名解析
安全性比较差
反向代理负载均衡
应用于比较小规模的系统,几台十几台规模
效率比较低,性能比较差,基于http协议包转换
IP负载均衡
网卡带宽成为瓶颈,成为响应瓶颈
数据链路层负载均衡《三角模式》
响应不用再经过负载均衡服务器,降低负载均衡服务器计算负载压力
Session复制
很难提升性能,消耗服务器资源
Session绑定
关注性能,关注高可用
利用Cookie记录Session
Cookin大小有限,权限受限
Session服务器
常用的设计
无状态服务器,share nothing分布式架构
评论