image

编辑人: 沉寂于曾经

calendar2024-12-30

message0

visits1189

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

分析&回答

对于系统的稳定性,人为因素占比最大,所以我们在这方面下工夫最多。

  • 研发流程方面

    • 尽可能把所有流程都流程化、标准化、自动化,减少人为的过多的干预。
    • 上线流程:测试(自测、CR、QA测试)、预发、灰度、小流程、全量 CheckList、上线发布策略(先单台,再批量)、上线监控策略(系统指标、业务指标监控)
    • 配置变更流程:修改线上配置的 DoubleCheck,上线审批流程、回滚流程等
  • 代码方面

    • 第三方工具进行代码检测,提前发现一些问题。工具可以帮助检测的内容如下:不遵循代码标准、潜在的缺陷、糟糕的复杂度分布、重复、注释不足或者过多、缺乏单元测试、糟糕的设计等,避免这些问题带到生成环境。比如:CheckStyle等
    • 上线之前代码 Review:对某段逻辑处理错误、参数校验合法性、异常逻辑处理、是否死循环、第三方依赖库是否正确使用等等
  • 配置方面

    • 超时参数配置,对于用TO-C服务、TO-B服务(业务后台)可能某些接口超时参数是不一样的,可能对TO-C比较短,业务最快响应,对TO-B可能面对某些大数据库查询,超时时间也是不一样的,需要根据业务场景及接口区分开合理配置。
    • 重试次数配置,重试次数1和3的区别很大,因为是每个请求连接可能可能会流量放大1倍或3倍,试想下,重试参数配置很简单,带来的效果是完全不一样的,针对不同的场景对重试次数合理配置,或不配置用户侧重试,其实是对服务的一种保护机制。

反思&扩展

影响稳定性因素有哪些?

image-1691391615807

image-1691391641447


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

创作类型:
原创

本文链接:你是如何保证服务高可用性?

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share