CS-Notes 学习笔记
面试最常问Java 后端 · 分布式与消息队列

怎样保证接口的幂等?

先自己想一想,再看参考要点

参考要点

  • 先确定幂等键:客户端在确认页生成 request_id,重试都带着它,或用业务唯一标识(如支付交易号)
  • 判断和处理要原子:唯一索引(重复插入报 1062,返回第一次的结果)、状态机条件更新、版本号乐观锁(重试沿用第一次读到的版本号)、Token(DEL 返回 1 才处理,只能挡住重复点击,最终去重仍靠业务唯一约束)
  • 先查再插、分布式锁都不能代替幂等
在学习站中自测这道题看这道题所在的一天

学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。