写点什么

Week5 - 技术选型 - 缓存,队列,负载均衡

用户头像
evildracula
关注
发布于: 2020 年 11 月 22 日

分布式缓存架构

缓存

缓存存储在计算机上的一个原始数据复制集,以便于访问 – 维基百科

缓存是介于数据访问者和数据源之间的一种高速存储,当数据需要多次读取的时候,用

于加快读取的速度。


缓存命中率

主要指标

  • 缓存键集合大小

  • 缓存可使用内存空间

  • 缓存对象生存时间


缓存类型

  • 代理缓存

  • 反响代理缓存

  • 多层反向代理缓存


  • 内容分发网络


缓存模式

通读缓存

  • 代理缓存,反向代理缓存,CDN

  • 通读缓存给客户端返回缓存资源,并在请求未命中缓存时获取实际数据

  • 客户端连接的是通读缓存而不是生成响应的原始服务器


旁路缓存

  • 对象缓存是一种旁路缓存,旁路缓存通常是一个独立的键值对(key-value)存储

  • 应用代码通常会询问对象缓存需要的对象是否存在,如果存在,它会获取并使用缓存的对象,如果不存在或已过期, 应用会连接主数据源来组装对象,并将其保存回对象缓存中以便将来使用

技术栈各层次的缓存


缓存的优势

技术简单,性能提升显著,引用场景多

显著提升性能

  • 缓存数据通常来自于内存,比磁盘上的数据有更快的访问速度

  • 缓存存储数据的最终结果形态,不需要中间计算,减少 CPU 资源消耗

  • 缓存降低数据库、磁盘、网络的负载压力,使这些 I/O 设备获得更好的响应特性


合理使用

  • 频繁修改的数据:一般来说,数据读写比例 2:1 上,缓存才有意义

  • 数据不一致与脏读

  • 缓存预热

  • 缓存穿透:恶意请求不存在数据,建议不存在数据,null 也缓存起来

  • 缓存雪崩

随着业务的发展,缓存会承担大部分的数据访问压力,数据库已经习惯了有缓存的日子,所以当缓存服务崩溃的时候,数据库会因为完全不能承受如此大的压力而宕机,进而导致整个网站不可用。这种情况,被称作缓存雪崩,发生这种故障,甚至不能简单的重启缓存服务器和数据库服务器来恢复网站访问。


  • 没有热点的访问:LRU


Reddis vs Memcached


消息队列与异步架构

架构

  • 消息生产者

  • 消息队列

  • 消息消费者


模型

  • 点对点

  • 发布订阅模型


优点

  • 异步处理,提升性能

  • 伸缩性

  • 削峰填谷

  • 失败隔离和自我修复

  • 解耦


负载均衡框架

http 重定向负载均衡


dns 负载均衡


反向代理负载均衡


ip 负载均衡


数据链路层负载均衡

负载均衡算法

  • 轮询

  • 加权轮询

  • 随机

  • 最少链接

  • 原地址散列


应用服务器集群的 Session 管理

Session 复制


Session 绑定


利用 Cookie 记录 Session


Session 服务器


发布于: 2020 年 11 月 22 日阅读数: 29
用户头像

evildracula

关注

还未添加个人签名 2019.07.29 加入

还未添加个人简介

评论

发布
暂无评论
Week5 - 技术选型 - 缓存,队列,负载均衡