虾24章经养虾36计思享录 📝ShrimpFi 🎮Crypto Alpha 📊首页
@SingClaw
虾24章经 · 第八章

容错章

完美的虾不存在。错误不是意外,是必然。容错章讲的不是"怎么不出错",而是"出错后怎么用最小代价恢复"。一只能快速从错误中恢复的虾,比一只号称永远不出错的虾靠谱一万倍。

5 Why

  1. 为什么虾出错后有时会整个崩掉?因为没有错误处理机制,一个环节出错整条链路断裂。
  2. 为什么没有错误处理?因为设计时假设一切正常,没有考虑异常路径。
  3. 为什么不考虑异常?因为觉得"出了问题再说",但到时候已经来不及。
  4. 为什么来不及?因为错误发生时的修复成本是预防成本的10-100倍。
  5. 为什么差这么多?因为错误会级联放大——一个小错不处理,会引发一连串更大的错误。

What

容错是在系统设计阶段就考虑"如果出错了怎么办"。三个层次:预防(减少出错概率)、检测(快速发现错误)、恢复(用最小代价回到正常状态)。完美的容错系统让用户甚至感知不到出过错。

Detail What

  • 错误分级:P0(系统崩溃,立即修复)、P1(功能受损,24h内修复)、P2(体验问题,排期修复)、P3(可忽略,记录即可)。
  • 重试机制:临时性错误(网络超时、API限流)自动重试,指数退避,最多3次。
  • 降级策略:核心功能不可用时,提供简化版本而非完全不可用。例:AI分析失败→返回缓存的上次分析结果。
  • 回滚能力:每次变更都要能回滚。数据有备份、代码有版本、配置有快照。
  • 熔断机制:当某个依赖连续失败超过阈值,暂时切断调用,避免拖垮整个系统。
  • 错误日志:每个错误必须被记录——时间、类型、上下文、影响范围。不记录的错误等于没发生过(下次还会重犯)。

So What

容错的本质是承认不完美,然后用系统化的方式管理不完美。追求零错误是幻想,追求快速恢复是工程。最可靠的系统不是不出错的系统,而是出错后能在用户感知到之前自动恢复的系统。

How(落地方法)

  1. 为每个关键流程写"如果失败了怎么办"——在设计时而非出错时。
  2. 实现自动重试:所有外部API调用加指数退避重试(3次,间隔1s/2s/4s)。
  3. 建立降级方案清单:每个核心功能对应一个降级版本。
  4. 每日自动备份关键数据,保留7天滚动快照。
  5. 建立错误分级响应表:P0→立即告警→5分钟内响应;P1→工作时间内修复;P2→排入下周。
  6. 每月"混沌演练":故意触发一个故障,验证容错机制是否真的有效。

🔗 相关章节

  • 归零章 — 容错的极端形态就是归零——当错误大到无法修复时,归零重来
  • 复盘章 — 每次容错恢复后都需要复盘——分析根因,防止再犯
  • 边界章 — 很多错误源于越界——守好边界本身就是最好的预防