写点什么

架构训练营 week5 课程总结

作者:红莲疾风
  • 2022 年 1 月 19 日
  • 本文字数:1021 字

    阅读完需:约 3 分钟

  • 多级缓存架构

缓存的本质是用空间换时间,缓存架构实际上是一个高性能的计算架构,而非存储架构。因为缓存架构并非需要持久化。

缓存架构里的缓存分为:

本地缓存、CDN、Web 容器缓存、应用缓存和分布式缓存(redis、memcached)

一般缓存架构是 5 级缓存架构,但是也可以去掉最贵的 CDN 变成 4 级缓存架构,而在 4 级的基础上如果还想去掉一层,则可以去掉实现最复杂的应用缓存架构。



  • 分布式缓存架构

分布式缓存架构主要有两种模式:数据缓存和结果缓存

数据缓存就是直接将数据缓存在缓存服务器里,来避免大量请求直接访问数据库。这类情况往往是读多写少,并且实时性要求较高。那么就必须解决一致性问题,而一致性问题要解决,就有三个方案:1. 容忍不一致。2.用关系数据库的本地事务重试。3. 用消息队列异步重试删除。


结果缓存就是把一些复杂的计算结果缓存下来,以免用户访问时要不断重新计算。这类缓存往往对于数据的实时性要求不是很高。


缓存架构一般会遇到三类问题:缓存穿透,缓存雪崩和缓存热点(有些地方叫缓存击穿)


  • 负载均衡的架构设计

负载均衡的架构里主要有 4 级

  1. app/Browser --> F5/LVS (路由到机房)

  2. F5/LVS --> nginx (机房内部分发)

  3. nginx --> 服务网关集群 (反向代理到服务集群)

  4. 服务网关集群 --> 服务集群(负载均衡到具体服务器)


如果要减少一级,那么可以去掉最贵的 F5/LVS,单个价格可以达到 30 万~100 万

如果还要减少一级,那么可以去掉 nginx,让服务网关的 ip 直接通过 NDS 暴露出去。这种架构往往适合请求量较小的系统。


  • 负载均衡架构技巧

负载均衡的算法有:轮询 &随机,加权轮询,负载优先,性能优先,Hash 算法

实际情况里,还是轮询以及随机用的最为广泛,因为有时候简单的就是好的,如果简单方案不能支持的场景,可以用其他的方案来解决。

负载均衡可以基于以下几种结构来进行:1. Cookie 2.X-Header 3. Http query string


  • 接口高可用

接口高可用的架构设计要解决两个效应:雪崩效应和链式效应


链式效应主要是为了应对接口故障,主要的处理方案有降级和熔断两种。降级主要是人工控制,直接禁用接口或者 url,而熔断可以配置规则(基于请求响应时间、成功率等),让系统进行自我保护。


雪崩效应主要是因为请求量太大,当请求量达到一个阈值的时候,系统性能会螺旋式下降,所以对应的措施就是限流和排队。限流可以使用三种方案:1.客户端限流 2.接入端限流 3.微服务限流。 而限流的算法有:1.时间窗算法,分为固定时间窗和滑动时间窗;2.漏桶算法,控制接受请求的总量 3.令牌桶算法,控制处理的速度


发布于: 刚刚阅读数: 4
用户头像

红莲疾风

关注

还未添加个人签名 2021.07.28 加入

还未添加个人简介

评论

发布
暂无评论
架构训练营 week5 课程总结