第3章 容错模式之一:重试策略
3.1 系统边界与分层结构
重试策略位于客户端与目标服务之间的中间层,不属于业务逻辑本身,而是容错基础设施的一部分。在分层架构中,重试策略引擎通常嵌入在以下位置之一:
- 客户端SDK / 服务网格Sidecar:对应用程序透明,拦截出站请求。
- API网关层:集中管理下游服务的重试策略。
- RPC/HTTP客户端库:如 gRPC 的 retry 拦截器、Spring Retry 模板。
无论部署在哪个层,重试策略引擎的系统边界都遵循相同的原则:只对可重试错误(如 HTTP 503、网络超时、临时连接拒绝)生效,对不可重试错误(如 HTTP 400、403、鉴权失败)直接透传。
边界规则:重试引擎只处理传输层/应用层的瞬时故障,不处理业务逻辑错误。所有重试决策必须在幂等性保证的前提下执行。
3.2 组件职责与数据流
重试策略引擎内部包含四个核心组件,职责严格分离。下图展示了从请求失败到重试完成的完整数据流与控制流: