week11 作业
作业 1
导致系统不可用的原因有哪些?保障系统稳定高可用的方案有哪些?请分别列举并简述。
引起故障的原因
硬件故障
软件 bug
系统发布
并发压力
网络攻击
外部灾害
高可用架构
核心思路是解耦、隔离、冗余
具体方案
负载均衡
将多个应用服务器构建成一个集群。当某个应用有问题,负载均衡可用切换到可用的应用服务,从而保证高可用
具体有以下实现方法
DNS 负载均衡
反向代理负载均衡
IP 负载均衡
数据链路负载均衡
备份与失效转移
数据库构建主从复制,进行读写分离。通过中间件可用进行失效转移
消息队列隔离
通过 MQ 下发数据,可进行系统解耦和削峰填谷
限流、降级和熔断
为了保证系统可用,当流量超过系统承受能力,需要限流,丢弃部分用户请求
若依赖的系统出现问题,需要降级和熔断,从而保证当前系统的可用。后续采用事务补偿机制,完成数据的一致性
异步多活
为了解决网络或者自然灾害造成机房不 可用。需要多地部署机房和系统。
高可用运维
自动化部署
自动化监控
自动化测试
预发布测试
灰度发布
评论