链路:订单系统 → 中间层 → 仓库系统 → 通知。
设计要点:
- 中间层做幂等。订单号做唯一键,重复推送直接忽略。
- 每步落库。收到、处理中、成功、失败四个状态,出问题能查。
- 失败重试指数退避。1 分钟、5 分钟、30 分钟,三次都失败进人工队列。
- 通知走异步。别让通知失败影响主流程。
踩过的坑:最开始没做幂等,仓库系统重试机制导致发了两遍货。加上唯一键之后解决。
这套结构换成任何两个系统对接都适用,核心就三件事:幂等、状态落库、重试有上限。
主楼补充一点,日志里记得记 trace id,不然跨服务查不动。
继续逛逛