知识卡片

级联故障与用异步隔离非核心依赖

专业/工作

内容

级联故障是复杂系统里最难防的一类问题:一个组件变慢或出故障,会通过负载转移或依赖关系把压力传导给其他本来健康的组件,像电网连锁跳闸一样一路蔓延。一个典型场景是网站的埋点统计服务变慢,而所有页面渲染都同步调用它,于是页面跟着变慢,用户等不及就点刷新,进一步推高本已吃紧的埋点服务负载,形成恶性循环。这类问题事后很难分析,唯一靠谱的预防思路是设计时就假设任何一个非核心依赖都会变慢或挂掉:把对它的调用从同步RPC换成异步消息,加短超时保护,允许在它不可用时直接跳过,从而让核心链路不被拖下水。

参考来源

《软件系统架构:使用视点和视角与利益相关者合作》第27章《可用性和弹性视角》