从零开始学架构 07计算高可用&业务高可用 【笔记】

计算高可用
  • 主备模式
    主机执行所有计算任务
  • 主从复制
    主执行部分任务,从执行部分任务
业务高可用
1、异地多活
  • 同城异区
    近似一个本地机房的效果
  • 跨城异地
    对于数据一致性要求不高,或者数据改变少,或数据丢失影响不大可以使用
  • 跨国异地
    为不透明地区用户提供服务
    如:亚马逊中国,亚马逊美国
2、设计技巧
  • 保证核心业务的异地多活
  • 核心数据最终一致性
    • 异地多活理论上就不可能很快,因为这是物理定率决定的
    • 采用多重手段同步数据,如消息队列方式、二次读取方式、存储系统同步方式、回源读取方式,重新生成数据方式
  • 只保证绝大部分用户的异地多活
    核心思想
    采用多种手段,保证绝大部分用户的核心业务异地多活
3、设计步骤
  1. 业务分级
    访问量大的业务
    核心业务
    产生大量收入的业务
  2. 数据分类
    数据量
    唯一性
    实时性
    可丢失性
    可恢复性
  3. 数据同步
    存储系统同步
    消息队列同步
    重复生成
  4. 异常处理
    多通道同步
    同步和访问结合
    日志记录
    用户补偿
4、接口级的故障应对方案

原因:内部原因(bug),外部原因(黑客攻击、秒杀、抢购等)
解决方案:和异地多活类似,优先保证核心业务,优先保证绝大部分用户

  • 降级,系统后门降级(降级url),独立降级系统
    丢车保帅,优先保证核心业务
    如论坛90%看帖子,那么优先保证看帖功能,发帖可以停掉,还有日志上传类的辅助功能
  • 熔断
    就是调用一个接口服务,此时接口服务响应慢或者宕机,导致系统被拖累很慢,此时调用此接口直接返回错误信息,就叫熔断
    前提:统一的API调用接口,设定一个熔断的阈值,如1分钟内30%的请求响应超过3s就熔断,需要采样统计
  • 限流
    只允许系统能够承受的访问量进来,超出系统访问能力的请求江北丢弃
    • 限流方式
      • 基于请求限流
        常见的有限制总量、限制时间量
        如直播间,1000个用户外无法进入
        阈值如何定义:可以采用性能压力测试
      • 给予资源限流
        如连接数、文件句柄、线程、请求队列
  • 排队
    排队模块
    调度模块
    服务模块
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值