架构师训练营 week11 作业

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



作业

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



导致系统不可用的原因



  • 硬件故障

  • 软件故障

  • 网络故障

  • 系统升级

  • 大量访问

  • 黑客攻击

  • 自然灾害

等等



高可用方案



解耦



设计原则,DDD等。



隔离



业务和子系统隔离

微服务和中台

生产者和消费者

虚拟机和容器

冗余备份



如果要实现硬件故障情况下的高可用,那至少要做硬件冗余,即服务器冗余备份。

可以利用负载均衡检测到失效的服务器后,自动引流到正常的服务器上。数据库主主复制也是一种冗余备份方案。



失效隔离

可以通过消息队列实现。



异步



多线程

反应式编程

异步通信网络编程

事件驱动架构



事务补偿

通过执行业务的逆操作



限流降级

限流是指对进入系统的用户请求进行流量限制,如果访问量超过了系统的最大处理能力,就会丢弃一部分的用户请求,保证整个系统可用,保证大部分用户是可以访问系统的。

降级是保护系统的另一种手段。有一些系统功能是非核心的,但是它也给系统产生了非常大的压力,比如说在电商系统中有确认收货这个功能,即便我们不去确认收货,系统也会超时自动确认收货。



异地多活

数据中心分布在多个不同地点的机房里。这些机房都可以对外提供服务,用户可以连接任何一个机房进行访问,这样每个机房都可以提供完整的系统服务,即使某一个机房不可使用,系统也不会宕机,依然保持可用。

用户请求的分发可以在域名解析的阶段完成。

另外,因为是多个机房都可以独立对外提供服务,所以也就意味着每个机房都要有完整的数据记录。用户在任何一个机房完成的数据操作,都必须同步传输给其他的机房,进行数据实时同步。



总结





用户头像

陈皓07

关注

还未添加个人签名 2019.04.11 加入

还未添加个人简介

评论

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