-
我的下单接口偶尔会给同一个用户生成两笔一模一样的订单、甚至重复扣款,我对着这些诡异的重复数据排查了大半天才真正理解幂等性的复盘
我的下单接口偶尔生成两笔几乎一模一样的订单、甚至同一笔消费扣两次款,两条订单除订单号外字段全同、时间差几百毫秒像被复制。我一开始以为是用户手抖点两次,排查日志才懂:重复大多不是点两次,而是"重试"——服务端处理成功了但返回响应超时,前端没收到成功就自动重试;调下游支付成功了但响应超时,本服务以为失败就重试;走 MQ 的 at-least-once 同一消息被消费多次。本质是网络…- 0
- 0
-
数据库唯一约束完全指南:从一次"明明查过了、用户却领到两张券"看懂并发插入与去重真相
2021 年我做一个电商活动的领券功能用户在活动页点一下领取系统给他发一张优惠券规则很简单一个用户一个活动只能领一张怎么保证只能领一张这件事我压根没多想我心里很省事地想插之前先查一下他领过没有没领过再插不就保证一人一张了吗第一版我做得很顺手先 SELECT 查这个用户在这个活动里有没有券查出来是 0 就 INSERT 一张查出来大于 0 就告诉他已经领过了就完事了本地开发时真不错我点一下领券成功再…- 2
- 0
唯一约束
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!


