重试幂等与补偿设计
本文系统讲解工作流里的重试与幂等设计,回答哪些错误该重试、退避与抖动怎么配、幂等键怎么设计、至少一次投递下如何不重复扣款。覆盖可重试与不可重试错误分类、指数退避与重试预算、幂等键与去重表、至少一次与恰好一次、租约与心跳、死信队列、补偿的顺序与幂等、并发限流与故障注入,并给出可运行配置与代码。
tag
本文系统讲解工作流里的重试与幂等设计,回答哪些错误该重试、退避与抖动怎么配、幂等键怎么设计、至少一次投递下如何不重复扣款。覆盖可重试与不可重试错误分类、指数退避与重试预算、幂等键与去重表、至少一次与恰好一次、租约与心跳、死信队列、补偿的顺序与幂等、并发限流与故障注入,并给出可运行配置与代码。
系统讲解 .NET HTTP 客户端的最佳实践,覆盖 HttpClient 生命周期陷阱、IHttpClientFactory 注册与命名客户端、Polly 重试熔断超时策略、负载均衡与故障转移,以及日志与性能监控的落地。
MCP 工具调用的可靠性工程:工具调用的失败模式(超时/依赖故障/幂等破坏)、超时设置与客户端策略、重试与退避、幂等工具设计(幂等键/去重)、长任务处理(进度通知/异步完成/可取消)、工具调用的背压与并发控制、失败后模型的降级路径,以及可靠性测试与可观测性。
系统拆解 Webhook 集成的完整工程:签名校验(HMAC/JWT)、接收端重试与退避、幂等处理、事件队列与丢失兜底、第三方 Webhook 的安全风险,给出从「收到回调」到「可靠消费事件」的落地模板。
深入 AI Agent 编排框架层的测试工程:编排器生命周期测试、任务调度与并发控制、重试与幂等执行、状态持久化与恢复(断点续跑)、超时与终止语义、多 Agent 并行的隔离与一致、编排器可观测性与回滚,构建从单 Agent 到生产编排系统的框架层质量保障。
系统讲解 Kafka 投递语义与可靠性模式:三种投递语义(at-most-once/at-least-once/exactly-once)、至少一次的重复来源、幂等消费(幂等表与唯一键去重)、重试与指数退避策略、死信队列(DLQ)设计与治理、端到端可靠性架构、常见坑与最佳实践
深入讲解测试套件并行执行与 Flaky Test(不稳定测试)治理:测试变慢的瓶颈分析、进程级/线程级并行模型(pytest-xdist/JUnit/Go t.Parallel)、测试隔离与共享资源污染、Flaky 根因分类与检测追踪(复跑/Quarantine/Flaky 标记)、修复策略、CI 分片与缓存,以及团队防 Flaky 的制度与流程。
本文详解后台任务重试的设计方法,涵盖最大次数、退避等待、错误分类、幂等性、死信队列和可观察性,附带最佳实践和常见陷阱。
写后端服务时,外部调用失败是常态。网络会抖,依赖会慢,网关会返回 502,数据库也可能短暂不可用。初学者最容易写出两种极端代码:一种完全不重试,偶发错误直接暴露给用户;另一种无脑重试很多次,把一个小抖动放大成更大的压力。正确做法不是“永远重试”或“永不重试”,而是把超时、退避和幂等性一起考虑。