分布式系统如何处理故障:超时、重试与降级
副标题 / 摘要 故障是分布式系统的常态。本文介绍超时、重试、熔断与降级等核心策略。 目标读者 负责服务稳定性的后端工程师 需要设计容错机制的团队 关注可靠性的技术负责人 背景 / 动机 网络抖动、依赖失败、资源耗尽都会导致故障。 没有系统化的策略,故障会扩散为雪崩。 核心概念 超时:避免无限等待 重试:恢复短暂故障 熔断:快速失败,保护系统 降级:保核心功能 实践指南 / 步骤 为所有外部调用设置超时 重试加入退避与上限 引入熔断器阻止雪崩 为关键路径准备降级策略 可运行示例 class CircuitBreaker: def __init__(self, threshold=3): self.failures = 0 self.threshold = threshold self.open = False def call(self, fn): if self.open: return "fallback" try: result = fn() self.failures = 0 return result except Exception: self.failures += 1 if self.failures >= self.threshold: self.open = True return "fallback" def unstable(): raise RuntimeError("fail") if __name__ == "__main__": cb = CircuitBreaker() for _ in range(4): print(cb.call(unstable)) 解释与原理 超时与重试解决“短暂故障”,熔断防止“持续故障扩散”。 降级保证系统在失败时仍能提供核心价值。 ...