概览
网络抖动、部署重启或源站繁忙都可能导致请求失败。可靠的回源策略需要判断失败原因,再决定等待、重试、切换还是直接返回错误。
健康检查、重试条件和备用源站的可配置范围以实际接入方案为准。示例说明设计原则,不代表所有请求都可自动恢复。
先区分故障,再设置重试
连接失败、读取超时与业务拒绝有不同含义。源站返回的权限或校验错误通常不应被当作网络故障反复重试。
| 情况 | 评估重点 | 处理思路 |
|---|---|---|
| 连接建立失败 | 目标可达性与备用来源 | 在限定预算内尝试可用来源 |
| 响应变慢 | 业务耗时与整体等待时间 | 区分连接与读取超时 |
| 源站错误 | 是否为可重试状态、是否有副作用 | 按请求性质决定是否重试 |
| 权限或参数错误 | 业务响应是否正确 | 保留原始结果,避免无意义切换 |
为一次请求设置总时间预算
每次尝试看似合理,累加后仍可能让用户等待过久。重试次数、等待间隔和超时需要从最终体验倒推。
- 控制重试次数,避免源站拥塞时成倍放大流量。
- 在多层代理中核对重试策略,防止各层重复重试。
- 交易、付款和写入请求必须确认幂等与去重机制。
备用源站必须真正能接管业务
备用地址可访问只是第一步。数据、证书、会话和发布版本一致,才可能平稳接管请求。
检查业务路径
健康检查应反映关键服务状态,同时避免检查本身造成额外负载。
验证数据一致性
明确跨源数据同步延迟、用户会话保存位置和内容版本。
安排恢复过程
设置恢复确认与渐进切回步骤,减少故障边界反复切换。
实施与检查步骤
- 01
建立正常基线
记录各源站响应、错误分布与业务允许的等待时间。
- 02
演练典型故障
在受控环境验证断连、慢响应与单源不可用,并检查是否重复写入。
- 03
保留切换记录
关联失败原因、实际尝试次数和最终结果,持续修正规则。
常见问题
不是。重试会增加等待和源站负载,还可能重复执行业务。应设置明确上限并优先保证请求语义正确。
地址之外还要核实 TLS、回源 Host、业务状态与数据。未经接管演练的备用源站不能证明可用性。