什么是幂等性?

119 阅读1分钟

它描述了一次和多次请求某一个资源对于资源本身应该具有同样的结果。 幂等性是为了解决重复提交问题,比如:恶意刷单,重复支付等。

解决幂等性常用的方案:
  1. 数据库约束,比如:唯一索引, 主键。同一个主键不可能两次都插入成功。
  2. 乐观锁,常用于数据库,更新数据时根据乐观锁状态去更新。数据库表中添加处理状态的字段,处理完成更新状态为完成,处理前判断状态是否完成,如果完成则不再处理。
  3. 唯一序列号,请求前生成唯一的序列号,携带序列号去请求,执行时在redis记录该序列号表示以该序列号的请求执行过了,如果相同的序列号再次来执行说明是重复执行。