写点什么

如何设计业务高性能高可用计算架构

作者:天天向上
  • 2021 年 11 月 28 日
  • 本文字数:830 字

    阅读完需:约 3 分钟

1、多级缓存架构


2、分布式缓存

2.1、原始数据缓存

四种数据缓存写入策略:

1、先写缓存后写存储;2、先写存储后写缓存;3、先删缓存再写存储;4、先删缓存再写存储再删缓存

应用场景:

实时性要求高、读多写少

设计核心:

如何保证数据一致性:使用本地表或者消息队列记录删除缓存失败的消息,然后通过重试删除操作

2.2、计算结果缓存

应用场景:

计算量大但实时性要求不高

设计核心:

缓存有效期与结果新鲜度的平衡

3、缓存架构问题

3.1、缓存穿透

解决方案:

  • 空值缓存

  • 缓存当前数据

  • 缓存预热

模拟请求触发系统生成缓存,实现比较复杂

后台按照规则指生成缓存,实现工作量大

灰度发布/预发布触发系统生成缓存(推荐)

  • 随机失效

3.2、缓存雪崩

解决方案:

  • 更新锁

  • 后台更新

3.3、缓存热点

解决方案:

  • 多副本缓存

  • 动态决策或人工干预

4、负载均衡

4.1、四级负载均衡

根据性能需求和维护复杂度,选择合适的负载均衡


4.3、负载均衡算法

  • 随机/轮询

  • 加权轮询

  • 加权轮询

  • 负载优先

基本原理:负载均衡系统将任务分配给当前负载最低的服务器,这里的负载根据不同的任务

类型和业务场景,可以用不同的指标来衡量。

适用场景:

1. LVS 这种 4 层网络负载均衡设备,可以以“连接数”来判断服务器的状态,服务器连接数越大,表明服务器压力越大。

2. Nginx 这种 7 层网络负载系统,可以以“HTTP 请求数” 来判断服务器状态(Nginx 内置的负载均衡算法不支持这种方式,需要进行扩展)。

  • 性能优先

基本原理:将任务分配给当前性能最好的服务器,性能衡量的标准主要是响应时间

适用场景:Nginx 这种 7 层网络负载系统,可以以“HTTP 响应时间” 来判断服务器状态

(Nginx 内置的负载均衡算法不支持这种方式,需要进行扩展)

  • Hash

基本原理:基于某个参数计算 Hash 值,将其映射到具体的服务器。

适用场景:

1. 有状态的任务,例如购物车;

2. 任务是分片的,例如某个用户的请求只能在某台服务器处理。

4.4、常见的负载均衡

1、Nginx:

2、LVS:

3、DNS

4.5、业务负载均衡

业务负载均衡是指基于业务内容的,更灵活。

常见的方法:

  • Cookie

  • 自定义 HTTP Header

  • HTTP query string

用户头像

天天向上

关注

还未添加个人签名 2018.09.20 加入

还未添加个人简介

评论

发布
暂无评论
如何设计业务高性能高可用计算架构