一.什么是幂等
幂等就是多次重复提交执行与一次提交执行的结果影响一样
二.为什么要幂等
在高并发的环境下,很频繁就触发多次请求:1.前端页面多次提交 2.网络重发、系统bug重试、nginx重发3.一个业务请求只对应一个订单号
三.如何幂等
1.select+update:在update操作之前先执行select查询操作,适用并发不多的场景
2.悲观锁:通常与事务放在一起 select * from tableName where ID=#{id} id一定是主键或者是唯一索引,这样是行锁,不然就是表锁
3.乐观锁:通常在数据更新的时候加锁,有两种常见实现
a.通过版本号实现
b.通过条件判断实现
4.token+redis机制
5.分布式锁:唯一索引在分布式环境不适用
6.对外提供的第三方接口:通过加source+seqId作为唯一索引判断是要要执行
原文文章链接:https://mp.weixin.qq.com/s/aqlWMxnneFhSIFJBPMW25A