支付、下单、创建任务这类接口必须考虑重复提交。网络重试、用户连点、消息重复投递都会触发同一个动作多次。

常见做法是客户端传幂等键,服务端用唯一索引或 Redis SETNX 保证同一业务请求只处理一次。

idem_key UNIQUE(user_id, request_id)

幂等不是简单地挡第二次请求。第二次请求最好返回第一次处理结果,这样调用方不用猜到底成功还是失败。

凡是有外部副作用的接口,都要把重复调用当成必然发生,而不是异常情况。

分类: Gin 实战 标签: Gin API设计 数据库

评论

-- 评论已关闭 --

全部评论