用户对于同一操作发起的申请,防重复提交
背景:提交订单,支付等操作,场景:连续点击,网页返回提交
1.令牌机制
客户端提交请求时带上一个令牌,同时在服务端也存储了一份(redis),服务端接受请求首先验证令牌,验证通过执行业务代码,再删除令牌。
2.各种锁机制
数据锁,业务层分布式锁等等(会有点耗费性能)
3.唯一约束(防重表)
数据库唯一约束,redis防重处理
4.全局请求唯一id
客户请求时生成一个唯一id,服务端接受请求把id放入redis表,下次再有带这个唯一id的请求时就直接返回异常。