架构师训练营第 5 周学习总结

用户头像
netspecial
关注
发布于: 2020 年 10 月 25 日

5.1 分布式缓存架构:架构原理与使用中的注意事项

  • 缓存数据使用的数据结构

  • Hash 表:时间复杂度O(1)

  • Hashcode是四字节的正整数

  • 缓存的关键指标

  • 缓存命中率

  • 缓存键集合的大小

  • 缓存可使用内存空间

  • 缓存对象生存时间(TTL, Time To Live)

5.2 分布式缓存架构:常见的缓存实现形式

  • 代理缓存:在客户一端

  • 反向代理缓存:反向代理服务器是代理数据中心的内容的,是系统架构中的一个重要组成部分,是部署在数据中心的一组服务器。

  • 多层反向代理缓存:HTTP URL

  • 内容分发网络(CDN):由运营服务商提供

  • CDN同时配置静态文件和动态内容(AWS - S3, EC2)

  • 通读缓存(read-through)

  • 代理缓存,反向代理缓存,CDN缓存都是通读缓存

  • 旁路缓存(cache-aside)

  • 对象缓存是一种旁路缓存

  • 浏览器对象缓存:旁路缓存

  • 本地对象缓存

  • 本地缓存构建分布式集群(JBoss),并不常见

  • 远程分布式对象缓存

  • 现在互联网系统主要使用的架构方案

  • 常用的包括Memcached, Redis

  • Memcached分布式对象缓存

  • Share-Nothing架构

  • Memcached分布式缓存访问模型

  • 原理,路由算法

5.3 分布式缓存架构:一致性Hash算法

  • 分布式对象缓存的一致性Hash算法

  • 一致性Hash的节点扩容

  • 负载压力不均衡

  • 添加服务器后,对负载的分摊也不均衡

  • 基于虚拟节点的一致性Hash算法

  • 技术栈各个层次的缓存

  • 缓存为什么能显著的提升性能

  • 缓存数据通常来自内存

  • 缓存存储数据的最终结果形态

  • 缓存降低数据库、磁盘、网络的负载压力

  • 缓存是系统性能优化的大杀器

  • 技术简单

  • 性能提升显著

  • 应用场景多

  • 合理使用缓存

  • 频繁修改的数据

  • 没有热点的访问 - LRU

  • 数据不一致与脏读

  • 缓存雪崩

  • 缓存预热 - 启动时加载热点数据

  • 缓存穿透 - 将不存在的数据也缓存起来(其value值为null),并设定一个较短的失效时间。

  • Redis VS Memcached

  • Redis 支持复杂的数据结构

  • Redis 支持多路复用异步I/O,高性能

  • Redis 支持主从复制,高可用

  • Redis原生集群与share nothing集群模式

5.4 消息队列:如何避免系统故障传递?

  • 同步调用 VS 异步调用

  • 消息队列构建异步调用架构

  • 点对点模型

  • 发布订阅模型

  • 消息队列的好处

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

  • 更好的伸缩性

  • 削峰填谷

  • 失败隔离和自我修复

  • 解耦

  • 事件驱动架构EDA

  • 耦合的表面积(程序调用者和被调用者之间耦合度有多高)更少。

  • 主要MQ产品比较

  • RabbitMQ

  • ActiveMQ

  • RocketMQ

  • Kafka

5.5 负载均衡架构:如何用十行代码写一个负载均衡服务器?

  • 负载均衡架构

  • HTTP重定向负载均衡

  • 实现方法比较简单,部署简单

  • 用户一次请求变成两次请求,请求效率比较低。

  • 应用程序服务器IP地址暴露

  • DNS负载均衡

  • 安全性问题

  • 两级负载均衡

  • 反向代理负载均衡

  • 小规模的服务器集群

  • IP负载均衡

  • 大规模的服务器集群

  • 响应的压力

  • 数据链路层负载均衡

  • 相同的IP地址,修改MAC地址

  • 三角模式

  • 负载均衡算法

  • 轮询

  • 加权轮询

  • 随机,加权随机

  • 最少连接,并不常见

  • 源地址散列,同一个来源总在同一个服务器上处理,实现会话粘滞。也并不常见。

  • 应用服务器集群的Session管理

  • Session复制

  • 数据量大,消耗资源

  • Session绑定

  • 源地址散列

  • 高可用场景,容易失败

  • 利用Cookie记录Session

  • Cookie大小有限

  • 有些浏览器禁止

  • Session服务器



用户头像

netspecial

关注

还未添加个人签名 2011.07.20 加入

还未添加个人简介

评论

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