架构师训练营第五周总结
缓存概念
介于数据访问者与数据源之间的一种高速存储,当数据需要多次读取的时候,用户加快读取速度。
区别与缓冲(Buffer):
缓存:系统两端处理速度不匹配时的一种折中策略
缓冲:减小短期内突发I/O的影响,起到流量整形的作用
性能优化:
技术简单
性能提升显著
应用场景多
常见各类缓存
CPU缓存
操作系统缓存
数据库缓存
JVM编译缓存
CDN缓存
代理与反向代理缓存
前端缓存
应用程序缓存
分布式对象缓存:Memcached,redis
通读缓存
给客户端返回缓存资源,并在请求未命中缓存时获取实际数据。
客户端连接通读缓存而不是原始服务器
代理缓存,反向代理缓存,CDH缓存
旁路缓存
判断是否存在,会连接原始服务器
对象缓存
缓存关键指标
缓存命中率
影响因素
缓存key集合大小:生成的唯一key越多,重用机会越少
缓存可使用内存空间:高速存储相对昂贵,能存储的对象越多,命中率就越高
缓存对象生存时间:TTL,对象缓存时间越长,缓存对象被重用的可能性就越高
缓存性能提升原因
更快的访问速度
不需要中间计算,减少CPU资源消耗
降低数据库、磁盘、网络的负载压力,使I/O设备获得更好的响应特性。
如何合理使用
不适合场景
频繁修改的数据
没有热点的访问
数据不一致与脏读
注意
缓存雪崩
缓存预热
缓存穿透
消息队列与异步架构
消息生产者,消息队列,消息消费者
常用模型
点对点模型
发布订阅模型
消息队列好处
实现异步处理,提升处理性能
更好的伸缩性
削峰填谷
失败隔离和自我修复
解耦
负载均衡
HTTP重定向负载均衡
DNS负载均衡
反向代理负载均衡
IP负载均衡
数据链路层负载均衡
负载均衡算法
轮询
加权轮询
随机
最少连接
源地址散列
应用服务器集群的session管理
session复制
session绑定
利用cookie记录session
session服务器
版权声明: 本文为 InfoQ 作者【xs-geek】的原创文章。
原文链接:【http://xie.infoq.cn/article/46c91d53463ba304c51b34900】。未经作者许可,禁止转载。
评论