万字长文浅谈系统稳定性建设
💡
原文中文,约9600字,阅读约需23分钟。
📝
内容提要
京东进行期中考试前的模拟考试,以检测系统稳定性。研发阶段关注技术方案评审、关注点、限流、熔断降级、超时、重试、兼容、隔离。代码Review阶段形成团队代码风格、关注代码风格、结对编程、控制review代码量、开放心态。上线阶段需要可监控、可灰度、可回滚。线上问题需发现、响应、定位。
🎯
关键要点
- 京东进行期中考试前的模拟考试,以检测系统稳定性。
- 研发阶段关注技术方案评审、代码质量、减少线下bug率。
- 技术方案评审需团队架构师、研发、测试等参与,确保方案合理性。
- 技术方案关注点包括限流、熔断降级、超时、重试、兼容和隔离。
- 限流策略防止系统被流量打垮,常见算法有计数器、漏斗等。
- 熔断保护系统不被下游系统拖垮,降级操作需尽量减少损失。
- 超时设置可避免系统无限等待,需根据历史数据逐步调整。
- 重试机制需控制次数,避免重试风暴,确保接口的幂等性。
- 兼容性分为向前兼容和向后兼容,重构时需注意。
- 隔离措施包括系统层面、环境隔离、数据隔离和读写隔离。
- 代码Review阶段形成团队代码风格,关注代码质量和风格。
- 上线阶段需关注可监控、可灰度和可回滚,降低故障频率。
- 可监控指标包括业务指标和技术指标,需设置合理的告警阈值。
- 可灰度通过分阶段发布降低风险,确保兼容性。
- 可回滚是快速止损的方式,需做好向前兼容性。
- 线上问题应对需识别问题、响应处理、预防和发现问题。
- 问题生命周期包括发现、响应、修复和复盘。
- 问题发现渠道包括自我意识、监控告警和业务反馈。
- 响应问题时需保留现场信息,快速恢复服务并确认恢复情况。
- 定位问题需依赖知识、工具和方法,提升解决问题的效率。
➡️