评判标准
故障转移
故障转移就是在某一个应用服务器不能服务用户请求的时候,通过一定的技术实现用户请求转移到其他应用服务器上来进行业务逻辑处理。例如使用nginx实现多个无状态实例的负载均衡,当其中一个或多个实例失效时,仍能通过其他实例提供服务
冗余备份
冗余备份就是针对某一个服务通过服务器集群或多机房部署来达到服务器冗余和相互备份的目的。例如Kafka和HDFS的备份机制
超时设置
超时设置就是主调服务在调用被调服务的时候设置一个超时等待时间Timeout,主调服务发现超时后,主动进入超时处理流程。超时设置的好处在于当某个服务不可用时,不至于整个系统发生连锁反应
异步调用
采用异步调用的方式调用被调服务,有利于将主调服务和被调服务进行解耦,同时提高系统的处理性能
服务分级和降级
对于不同的服务可以采用不同的处理方案,出现故障时应该优先保证核心服务的运行。
监控告警
服务一旦出现问题能够及时发现,通过自动化处理,或者人工介入处理,从而达到缩短系统的不可用时间,提高可用性。常见的监控指标有:CPU、带宽、内存使用率、网络连接状态,系统调用错误,成功率,PV,UV等
防雪崩机制
对于设计的任何一个系统,都需要进行容量的预估和最大容量设置,当外部请求量超过最大容量时,应该启动防雪崩机制,以避免大量外部请求把服务压跨而不能对外提供服务
流量缓冲机制
在服务内可以建立队列,当流量过大时,储存一定的用户请求到队列,当流量偏小时再拿出来快速处理,从而达到削峰填谷的作用。例如在大数据存储中Kafka作为缓冲队列的应用
自动化测试
对于每一次代码的提交,都能通过自动测试程序对整个服务进行整体的回归测试,这样可以快速地避免代码修改引入新的问题,而导致服务不稳定
关键指标
正常运行时间百分比
描述 | 通俗叫法 | 可用百分比 | 年停机时间 |
---|---|---|---|
基本可用性 | 2个9 | 99% | 87.6小时 |
较高可用性 | 3个9 | 99.9% | 8.8小时 |
具有故障自动恢复能力的可用性 | 4个9 | 99.99% | 53分钟 |
极高可用性 | 5个9 | 99.999% | 5分钟 |
容灾恢复能力
RPO
灾难过程中的最大数据丢失量RTO
系统从灾难状态恢复到可运行状态所需的时间
容灾等级 | RTO | RPO |
---|---|---|
第一级 | <2天 | <7天 |
第二级 | <24小时 | <7天 |
第三级 | <12小时 | <1天 |
第四级 | <2小时 | <1天 |
第五级 | <30分钟 | <30分钟 |
第六级 | <10分钟 | 0 |