写点什么

保障系统高可用性设计方案

发布于: 2020 年 08 月 26 日

Author: Jessie Yang

Date: 2020/8/26



摘要

本文对系统不可用的原因进行简单阐述,并对保障系统稳定高可用的方案进行列举和说明。



导致系统不可用的原因

l  硬件故障

l  软件bug

l  系统发布

l  并发压力

l  网络攻击

l  外部灾害

 

保证系统高可用的架构方案



参考如下原则和方案:

1.   解耦:高内聚、低耦合的组件设计原则;面向对象设计原则、领域驱动设计原则

2.   隔离:微服务和中台架构、生产者和消费者隔离、虚拟机和容器隔离;业务和子系统的隔离。

3.   异步设计原则:异步框架避免业务的同步阻塞。



4.   备份:避免单点设计,利用集群提供服务能力。数据库的主从复制等保证数据一致性。



5.   失效转移:数据库主主失效转移、负载均衡失效转移

6.   幂等: 利用操作和业务保证,使多次重复请求不会造成错误的结果(如交易编号保证有效性校验)

7.   事务补偿:利用代码的逻辑,当事务失败后,回滚到事务前状态。

8.   重试:为防止网路或系统服务临时无法响应(垃圾回收、线程阻塞),重试方法修复单词调用的故障。

9.   熔断机制:当服务出现故障,使用断路器阻断对故障服务进行打开、关闭、半开的控制。



10.  限流:系统访问超过系统的承受能力,对系统做留量限制,丢弃部分用户请求,防止系统崩溃。限流的几种算法:

l  计数器算法





l  令牌桶算法



l  漏桶算法



l  自适应限流



11.  降级:系统高并发时,将非核心功能关闭,保证核心功能的处理能力。

12.  异地多活:当遇到外部原因,用不同地点简历多个数据中心,多个机房提供完整的系统服务。

13.  安全防护:利用Web应用网关,做安全规则,防止脚本注入、SQL预编译参数绑定方式SQL注入、利用表单Token防止CSRF伪造用户请求操作等方法安全攻击。

一些开源的Web应用防火墙:ModSecurity,或者借鉴逻辑策略规则,进行安全防御策略的设置。



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

还未添加个人签名 2018.08.21 加入

码过代码、做过产品;擅长码字、演讲、认真做事之人。

评论

发布
暂无评论
保障系统高可用性设计方案