写点什么

架构师训练营 week11 课后作业

用户头像
花果山
关注
发布于: 2021 年 01 月 03 日

导致系统不可用的原因有哪些?保障系统稳定高可用的方案有哪些?请分别列举并简述。

原因:

  • log 设置的级别低,输出的文件占满磁盘空间

  • sql 执行频率过高,应该走缓存或搜索引擎

  • synchronized 修饰的方法耗时过长

  • 缓存服务器被关闭,导致数据库 load 飙升

  • 后台服务还没启动完成,就放请求进来了,导致请求阻塞

  • 个别大文件的读写占用磁盘,导致其他用户的文件操作缓慢

  • 在生产环境做压力测试,占用了大部分交换机带宽

  • 访问缓存的代码被注释掉了

  • 对象为 null,导致 NullPointException

方案:

解耦:高内聚低耦合

隔离:业务与子系统隔离、微服务与中台架构、生产者与消费者隔离、虚拟机与容器隔离

异步:多线程编程、反应式编程、异步通信网络编程、事件驱动异步架构

备份:集群设计、数据库复制

Failover 失效转移:数据库主主失效转移、负载均衡失效转移,设计无状态的服务

幂等:保证服务重复调用和调用一次产生的结果相同

事务补偿:通过执行业务逻辑逆操作,使事务回滚到事务前状态

重试:上游调用者超时时间要大于下游调用者超时时间之和

熔断:断路器三种状态(关闭、打开、半开)

限流(计数器算法(固定窗口、滑动窗口)、令牌桶算法、漏桶算法)

自适应限流:实时自动评估 QPS

降级:系统处于极限高并发访问压力时,关闭非核心的部分功能

异地多活:难点是数据一致


发布于: 2021 年 01 月 03 日阅读数: 18
用户头像

花果山

关注

还未添加个人签名 2019.05.09 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 week11 课后作业