架构师训练营第十一周

用户头像
跨域刀
关注
发布于: 2020 年 08 月 26 日

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

引起系统不可用的原因:

硬件故障、软件故障(bug)、系统发布(版本控制,数据库和代码管理,服务器配置等)、并发压力(高并发压力过大)、网络攻击、外部灾害



高可用方案:

解耦 -- 大多数公司不会像淘宝一样出现高并发现象,编程为主要优化对象

高内聚、低耦合的组件设计原则 -- 发布阶段出现问题概率高,依赖关系要清晰

面向对象的基本设计原则

面向对象设计模式

领域驱动设计建模



隔离-- 使得故障不会扩散

业务和子系统隔离   

微服务与中台架构

生产者和消费者隔离

虚拟机与容器隔离



异步 -- 同步导致一个失效,多个连锁失效

多线程编程

反应式编程

异步通信网络编程

事件驱动异步架构



备份 -- 当应用只部署在一个服务器上,服务器发生故障,则该应用不可使用

集群设计

数据库复制,CAP原理



失效转移 -- 检测到用户实

数据库主主失效转移

负载均衡失效转移



幂等





事务补偿



重试 -- 远程服务发生超时,保证重新服务再次重试可以修复单词调用的故障



熔断 -- 当服务器服务延迟和失败调用增加时,采用断路器熔断处理



限流 -- 在高并发情况下,设定好数值,丢弃一部分用户请求,保证大部分用户请求得到响应



自适应限流 -- 检测高并发情况,根据自身负载进行自适应限流



降级 -- -- 在高并发情况下关闭一些不重要的服务



异地多活 --在多个地方部署机房

用户头像

跨域刀

关注

还未添加个人签名 2020.03.18 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第十一周