第十周作业 (作业一)
导致系统不可用的原因有哪些?保障系统稳定高可用的方案有哪些?请分别列举并简述。
导致系统不可用的原因有:
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、异地多活
版权声明: 本文为 InfoQ 作者【Geek_83908e】的原创文章。
原文链接:【http://xie.infoq.cn/article/1b21e99a44fb0ebb76ffe1a82】。文章转载请联系作者。
评论