幂等性要求的场景:
1、表单提交,重复点击问题,产生两条相同数据。
2、接口超时重试,出现重复操作数据问题。
3、mq消费者读取消息,读取重复消息问题。
接口幂等性是指用户对于同一操作发起的一次请求或者多次请求的结果是一致。
如何解决请求重复,就需要接口的幂等
幂等解决方案:
1、insert前进行select,例如用户注册,相同账号提示错误。查询到插入业务需加锁控制。
加锁,分布式长期,用redis进行分布式锁处理。
请求账户设置为锁key。相同请求则第二次请求直接返回。
次场景适用于,请求需唯一标识,如各支付平台,请求号唯一,相同请求号第二次请求直接返回错误。
2、使用token方案。
两个请求完成同一件事。
接口1请求token
接口2请求,带上接口1请求token,同样token存到redis中。验证token成功,删除token进行后续操作。第二个请求,此时token已删除,直接返回错误。