架构师训练营 第五周 总结

发布于: 2020 年 07 月 08 日

分布式缓存架构

  1. 缓存:存储在计算机上的一个原始数据复制集,以便于访问,是介于数据访问者和数据源之间的一种高速存储,当数据需要多次读取的时候,用于加快读取速度。

  2. 缓存数据存储使用Hash表实现,本质是数组。

  3. 缓存的关键指标:缓存命中率。

  4. 影响缓存命中率的主要指标

  • 缓存键集合大小

  • 缓存可使用内存空间

  • 缓存对象生存时间

  1. 缓存种类

  • 通读缓存(read-through)

  • 代理缓存

  • 反向代理缓存

  • 多层反向代理缓存

  • 内容分发网络(CDN)

  • 盘路缓存(cache-aside)

  • 对象缓存

  • 分布式对象缓存

  1. 分布式对象缓存的一致性哈希算法

无虚拟节点的一致性哈希算法缺点:节点的Hash值不均衡,导致缓存负载不均衡,增加节点不能减轻现有各节点的压力

解决方法:增加虚拟节点

  1. 缓存为什么能显著提升性能

  • 缓存数据通常来自内存

  • 缓存数据是最终结果形态,不需要中间计算

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

  1. 缓存的使用场景问题

  • 频繁修改的数据:一般读写比在2:1以上,使用缓存才有意义

  • 没有热点数据的访问,使用缓存没有意义

  • 使用缓存带来数据不一致问题,可在数据更新时通知缓存失效

  • 缓存雪崩

  • 缓存预热

  • 缓存穿透:将不存在的数据也缓存起来,并设定一个较短的失效时间

消息队列和异步架构

  1. 同步调用与异步调用

  2. 采用消息队列构建异步调用架构,包含:

  • 消息生产者

  • 消息队列

  • 消息消费者

两种模型:点对点模型和发布订阅模型

  1. 消息队列的好处

  • 实现异步处理,提升处理性能

  • 更好的伸缩性

  • 削峰填谷

  • 失败隔离和自我修复

  • 解耦

  1. 事件驱动架构EDA

耦合表面积小

负载均衡架构

  • HTTP重定向负载均衡

  • DNS负载均衡

  • 反向代理负载均衡:工作在第7层

  • IP负载均衡:工作在第3层,一般瓶颈为网络出口带宽

  • 数据链路层负载均衡:工作在第2层,目前大型互联网企业常用方案

应用服务器集群的Session 管理方式:

  • Session复制

  • Session绑定

  • 利用Cookie记录Session

  • Session服务器:目前常用方案

分布式数据库

MySQL复制:主从复制,一主多从复制,主主复制,主主失效恢复

用户头像

CR

关注

还未添加个人签名 2018.09.23 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 第五周 总结