第十周作业 (作业一)

用户头像
Geek_83908e
关注
发布于: 2020 年 12 月 07 日

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

导致系统不可用的原因有:

1、硬件故障

2、软件 bug

3、系统发布

4、并发压力

5、网络攻击

6、外部灾害



保障系统稳定高可用的方案有

1、解耦

需要做到以下几点:

高内聚、低耦合的组件设计原则

面向对象基本设计原则

面向对象设计模式

领域驱动设计建模



2、隔离

包括:

业务与子系统隔离

微服务与中台架构

生产者消费者隔离

虚拟机与容器隔离



3、异步

包括:

多线程编程

反应式编程

异步通信网络编程

事件驱动异步架构



4、备份

集群设计

数据库复制

CAP 原理



5、Failover(失效转移)

数据库主主失效转移

负载均衡失效转移



6、幂等



7、事务补偿

事务补偿传统事务的 ACID

原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)分布式事务的 BASE

基本可用(Basic Availability )、 软状态(Soft-state)、 最终一致性(Eventual consistency)

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



8、重试

远程服务可能会由于线程阻塞、垃圾回收或者网络抖动,而无法及时返还响应,调用者可以通过重试的方式修复单次调用的故障。

上游调用者超时时间要大于下游调用者超时时间之和。



9、熔断

当某个服务出现故障,响应延迟或者失败率增加,继续调用这个服务会导致调用者请求阻塞,资源消耗增加,进而出现服务级联失效,这种情况下使用断路器阻断对故障服务的调用。• 断路器三种状态:关闭,打开,半开



10、限流

限流的几种算法:

计数器算法(固定窗口,滑动窗口)

令牌桶算法

漏桶算法



11、自适应限流

没有提前的人工评估, 便没有提前的评估过时与人的评估疏漏/错误 !

实时自动评估 QPS

业务流量的不确定性与技术方案的自适应性天生一对!



12、降级



13、异地多活



发布于: 2020 年 12 月 07 日阅读数: 15
用户头像

Geek_83908e

关注

还未添加个人签名 2019.04.28 加入

还未添加个人简介

评论

发布
暂无评论
第十周作业 (作业一)