这是我参与更文挑战的第6天,活动详情查看: 更文挑战
一个高可用的服务意味着两点, 第一点,该服务不能频繁出现故障,出现任何的故障都会对业务产生或大或小的影响;第二点,即使服务出现故障,也应该要在极短的时间内恢复正常到业务,将损失降到最低。
1.衡量高可用服务的重要指标
业界一般以提供正常服务的时间/全年的时间取百分比作为衡量一个服务高可用程度的重要指标,也就是我们经常听到N个9的说法。比如4个9,也就是99.99%。小数点后9越多代表服务更具备高可用性。
在生产环境中,我们并不一定非要追求的极致高可用,我们应该根据能够承担多少宕机成本,就保证相应的可用时间这样的原则进行高可用的选择。这个原则我们可以从经济效益去理解,如果你为实现更高可用的成本大于实现后带来的利益,你就应该斟酌一番了。
2.如何提高服务的高可用性
提高的方式多种多样,但总的来说我们需要从两方面着手。
- 从平均失效时间入手
- 从平均恢复时间入手
首先,可以尽量避免应用宕机来减少宕机时间。实际上,通过适当的配置、监控,以及规范或安全保障措施,很多导致宕机的问题很容易可以避免。
其次,尽量保证在发生宕机时,能够快速恢复。最常见的策略是在系统中制造冗余,并且保证系统的故障转移能力。
具体方法有:
- 基于负载均衡的故障转移
- 冗余备份
- 超时设置
- 异步调用
- 服务分级和降级
- 监控告警
- 防雪崩机制
- 流量缓冲机制
- 自动化测试
- 灰度发布和回滚机制
- 代码控制
接下来的文章结合Keepalived展开聊一聊故障转移中的虚拟 IP 地址或 IP 接管方案,其余方案后续一一详细阐述。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END