技术分享

系统对接中的幂等设计:重复推送不重复入账

系统同步与状态管理概念场景

两个系统对接时,上游可能因网络超时再次发送同一请求,而下游已经执行了业务操作。设计幂等处理时,需要识别同一业务请求,并协调业务写入与处理结果记录。

确定业务唯一标识

由来源系统、业务类型和业务编号等字段构成稳定标识。同一标识再次到达时,应核对关键请求内容;内容冲突应显式报错,不能把不同业务当成同一次请求。

约束与事务共同处理并发

仅在写入前查询一次是否存在,不能阻止两个并发请求同时通过检查。应结合唯一约束及事务,把幂等记录与可事务化的业务变更协调处理,并对唯一冲突返回一致的处理状态。参考:PostgreSQL 约束说明

区分处理中、成功和失败

重试可能发生在首次操作仍未结束时。需要定义处理中如何响应、成功结果如何复用、失败是否允许重试。对外部系统调用,还需结合对方的幂等能力、结果查询与补偿机制处理,不能把本地事务等同于全链路只执行一次。

让异常可追踪

记录业务标识、请求结果和必要的排查信息,控制日志中的敏感内容。重试达到约定上限后,进入人工处理流程,并通过对账检查最终业务结果。

项目咨询

有需求,先把场景说清楚

欢迎提供已有流程、遇到的问题和期望目标。电话 15683240413,微信 holyds8888。

填写咨询表单