你如何理解高可用性?

分析&回答


什么是高可用性?

  • 高可用(HA)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。
  • 服务器的可用性是指单位时间内(通常一年),服务器可以正常工作的时间比例。
    • 可用性 = 平均故障间隔/(平均故障间隔 + 故障恢复平均时间)
    • 比如 很多公司的高可用目标是4个9,也就是99.99%,这就意味着年停机时间为53分钟。
    • 比如 支付系统的高可用目标是9个9,也就是99.999%,这就意味着年停机时间为5分钟。

什么是高可用级别?

  • 级别一:FT (Fault Tolerance) 双击热备 通过创建与主实例保持虚拟同步的虚拟机,使应用在服务器发生故障的情况下也能够持续可用。
  • 级别二:虚拟机HA 虚拟机HA主要指在有一个共享存储池的情况下,当一台物理机挂了,这台物理机上的虚拟机可以迁移到其他物理机的机制。
  • 级别三:同城双活 一般可以做到实时切换,差一点几分钟到十几分钟
  • 级别四:异地容灾 容灾切换的时间一般在小时级别。
  • 级别五:异地备份 冷数据的方式存储信息以备不时之需。

构建高可用系统,面临哪些难题?

难题一:业务变化之快

对于一个业务来说,不同阶段业务目标是不同的,对系统的要求也是如此:业务初期的要求迭代效率,业务中期的要求是业务起量,业务长期的要求是高可用(稳定性)。需要注意的是,面对业务的快速发展及不确定性,想要提升系统稳定性,需要贴合业务的节奏,对于影响稳定性高严重性、高可能性的风险进行风险管控处理。面对业务的快速,我们对服务的优化和改造,一定要有远瞻性,可以提前做好稳定性建设布局:

  • 基础设施建设,比如:日志、监控、告警、分布式配置中心;
  • 通用性业务组件建设,比如:分布式锁、限流、熔断器;
  • 洞察业务趋势,做好技术储备。
难题二:构建范围之广

稳定性建设需要从全局视角总览,建设范围广,工作量大,其中包括研发、测试、运维、DBA等多个角色,流程规范,变更管理,涉及架构设计、数据库、缓存、消息队列等。在构建范围上,可以考虑从以下几个维度入手:

  • 业务上, 要面向异常情况考虑,比如:页面加载失败、要友好提示;
  • 技术方案上, 要面向失败设计,比如:数据一致性、强依赖失败;
  • 核心关键流程上, 要标准化,比如:上线审批流程、技术方案评审必须由架构师确认;
  • 工具上, 要尽可能自动化、避免人为操作,比如:部署系统。
难题三:实施成本之高

稳定性建设是需要投入一定的成本,带来的收益也是隐形的,不像业务目标那么明显。一般情况下,业务上不会给技术做稳定性建设的,除非是业务已取得一定的收益,业务模型已形成闭环,此刻业务为了走的更远,打稳地基,允许投入一定的成本做稳定性建设。

不过技术债,还是要尽早还,因为坐在前期的成本要小很多。 比如,服务依赖不合理,前期调整比后期调整的成本就要小的多。

反思&扩展


你是如何保证服务高可用性?


喵呜面试助手: 一站式解决面试问题,你可以搜索微信小程序 [喵呜面试助手] 或关注 [喵呜刷题] -> 面试助手 免费刷题。如有好的面试知识或技巧期待您的共享!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵呜刷题

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值