核心问题
一个服务挂了,为什么会拖死整个系统?
工程困境
课程详情页依赖推荐、评论、讲师、价格、访问权。评论服务慢了,页面线程被占满,整个课程页开始超时。
思想模型
级联故障是局部失败通过依赖关系扩散。
熔断器是负反馈:下游不健康时暂时停止请求,给它恢复时间,也保护上游。
好做法
- timeout
- circuit breaker
- fallback
- bulkhead
- retry budget
- graceful degradation
课程评论挂了,课程购买和播放不应该一起挂。
Atlas Action
找一个核心页面,列出所有下游依赖。标记哪些失败应阻塞主流程,哪些应该降级。
小结
稳定系统不是所有服务都不失败,而是局部失败不扩散。