Week5 - 技术选型 - 缓存,队列,负载均衡
分布式缓存架构
缓存
缓存存储在计算机上的一个原始数据复制集,以便于访问 – 维基百科
缓存是介于数据访问者和数据源之间的一种高速存储,当数据需要多次读取的时候,用
于加快读取的速度。
缓存命中率
主要指标
缓存键集合大小
缓存可使用内存空间
缓存对象生存时间
缓存类型
代理缓存
反响代理缓存
多层反向代理缓存
内容分发网络
缓存模式
通读缓存
代理缓存,反向代理缓存,CDN
通读缓存给客户端返回缓存资源,并在请求未命中缓存时获取实际数据
客户端连接的是通读缓存而不是生成响应的原始服务器
旁路缓存
对象缓存是一种旁路缓存,旁路缓存通常是一个独立的键值对(key-value)存储
应用代码通常会询问对象缓存需要的对象是否存在,如果存在,它会获取并使用缓存的对象,如果不存在或已过期, 应用会连接主数据源来组装对象,并将其保存回对象缓存中以便将来使用
技术栈各层次的缓存
缓存的优势
技术简单,性能提升显著,引用场景多
显著提升性能
缓存数据通常来自于内存,比磁盘上的数据有更快的访问速度
缓存存储数据的最终结果形态,不需要中间计算,减少 CPU 资源消耗
缓存降低数据库、磁盘、网络的负载压力,使这些 I/O 设备获得更好的响应特性
合理使用
频繁修改的数据:一般来说,数据读写比例 2:1 上,缓存才有意义
数据不一致与脏读
缓存预热
缓存穿透:恶意请求不存在数据,建议不存在数据,null 也缓存起来
缓存雪崩
随着业务的发展,缓存会承担大部分的数据访问压力,数据库已经习惯了有缓存的日子,所以当缓存服务崩溃的时候,数据库会因为完全不能承受如此大的压力而宕机,进而导致整个网站不可用。这种情况,被称作缓存雪崩,发生这种故障,甚至不能简单的重启缓存服务器和数据库服务器来恢复网站访问。
没有热点的访问:LRU
Reddis vs Memcached
消息队列与异步架构
架构
消息生产者
消息队列
消息消费者
模型
点对点
发布订阅模型
优点
异步处理,提升性能
伸缩性
削峰填谷
失败隔离和自我修复
解耦
负载均衡框架
http 重定向负载均衡
dns 负载均衡
反向代理负载均衡
ip 负载均衡
数据链路层负载均衡
负载均衡算法
轮询
加权轮询
随机
最少链接
原地址散列
应用服务器集群的 Session 管理
Session 复制
Session 绑定
利用 Cookie 记录 Session
Session 服务器
版权声明: 本文为 InfoQ 作者【evildracula】的原创文章。
原文链接:【http://xie.infoq.cn/article/a8fc0a1f23a1099dedd94486c】。文章转载请联系作者。
评论