幂等性

一、什么是幂等性

  幂等性就是一个方法短时间内被多次调用,但是产生的结果和只调用一次的结果相同,那么这个操作就是幂等的。比如select操作天然幂等。

二、请求方式的幂等性

  在常见的4中请求方式中,get、delete、put请求都是幂等的,只有post请求不幂等

三、幂等性场景

  1、查询操作:select是天然的幂等操作;

  2、删除操作:删除操作也是幂等的,删除一次和多次删除都是把数据删除;

  3、唯一索引:防止新增脏数据。比如:支付宝的用户账户和资金账户,每个用户只能有一个资金账户,给资金账户表中的用户ID加唯一索引,防止给用户创建多个资金账户。要点:唯一索引或唯一组合索引来防止新增数据存在脏数据(当表存在唯一索引,并发时新增报错时,再查询一次就可以了,数据应该已经存在了,返回结果即可);

   4、token机制:防止请求重复提交;

  5、悲观锁

  6、乐观锁

  7、分布式锁

在项目中推荐使用第4中方法保证接口幂等性,防止请求重复提交,在拦截器中添加可以应用全局,具体实现方式可以参考我的另一篇文章:

https://www.cnblogs.com/bulushengse/p/12157212.html

posted @ 2020-05-11 16:38  左手daima右手诗  阅读(1574)  评论(0编辑  收藏  举报