写点什么

如何保障系统高可用

用户头像
林昱榕
关注
发布于: 2020 年 08 月 26 日

影响系统可用性的原因

  • 硬件故障

  • 软件Bug

  • 系统发布

  • 并发压力

  • 网络攻击

  • 外部灾害



保障系统稳定高可用方案

  • 解耦(系统设计、代码质量)--依据:系统依赖关系清晰,易维护、易定位、分析、解决问题

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

  • 面对对象基本设计原则

  • 面对对象设计模式

  • 领域驱动设计建模

  • 隔离

  • 业务与子系统隔离

  • 微服务与中台架构

  • 生产者消费者隔离

  • 虚拟机与容器隔离

  • 异步

  • 多线程编程

  • 反应式编程

  • 异步通信网络编程

  • 事件驱动异步架构

  • 备份--单点故障消除

  • 集群设计

  • 数据库复制(CAP原理)

  • FailOver(失效转移)

  • 数据库主主失效转移

  • 负载均衡失效转移 -- 无状态服务

  • 幂等

  • 事务补偿

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

  • 重试

  • 超时原因:线程阻塞、垃圾回收、网络抖动

  • 注意:上游调用者超时时间要大于下游调用者超时之和

  • 熔断

  • 断路器状态:关闭、打开、半开

  • Spring Cloud断路器实现:Hystrix

  • 限流

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

  • 令牌桶算法

  • 漏桶算法

  • 自适应限流

  • 降级--关闭未核心功能,保证核心功能的正常运行

  • 异地多活

  • 难点是数据一致

发布于: 2020 年 08 月 26 日阅读数: 46
用户头像

林昱榕

关注

开心生活,努力工作。 2018.02.13 加入

还未添加个人简介

评论

发布
暂无评论
如何保障系统高可用