双十一线上事故复盘

事故一 背景: 服务old一个前后端不分离的老项目,服务new是一个前后端分离的新服务。部分功能从服务old迁移到服务new,采用了请求重定向的方式,前端请求服务old的老接口后重定向到新服务。 现象: 大促前5分钟,应用tp99,tp999开始有个别报警超时,tp999响应时间超过20s。 事故二 经验: 永远不相信任何服务提供方,永远不强依赖服务提供方。 熔断、降级 熔断机制: 对R2M依赖过强,当R2M出现不可用了,实名没有熔断机制。 合理的设计应该是,假如分布式缓存服务不可用,则启用本地缓存并使用LRU机制,放弃峰值TPS和一定的成功率保证服务可用。 降级: 任何一个服务都要提供日志降级方式(这里又要引入熔断机制,假如依赖的动态配置服务挂了,那么所有的配置项应该启用默认配置,并且该配置应该是优先保证服务可用,可以牺牲可观察性,牺牲服务能力)

November 4, 2023 · 1 min