唯一性主键
插入数据的唯一索引
插入数据的唯一性,可以通过业务主键来进行约束,例如一个特定的业务场景,三个字段肯定确定唯一性,那么,可以在数据库表添加唯一索引来进行标示。
这里有一个场景,API层面的幂等,例如提交数据,如何控制重复提交,这里可以在提交数据的form表单或者客户端软件,增加一个唯一标示,然后服务端,根据这个UUID来进行去重,这样就能比较好的做到API层面的唯一标示
高并发下接口幂等性解决方案
关于高并发和分布式中的幂等处理(转载+汇总)
乐观锁
阿里P7告诉你SpringBoot如何防止重复提交?
https://www.jianshu.com/p/07e12a9b16aa
https://www.cnblogs.com/RunForLove/p/5640949.html
token机制,防止页面重复提交
要求:页面的数据只能被点击提交一次
发生原因:由于重复点击或者网络重发,或者nginx重发等情况会导致数据被重复提交
解决办法:
集群环境:采用token加redis
单JVM环境:采用token加redis或token加jvm内存
处理流程:
数据提交前要向服务的申请token,token放到redis或jvm内存,token有效时间
提交后后台校验token,同时删除token,生成新的token返回
token特点:要申请,一次有效性,可以限流。
注意:redis要用删除操作来判断token,删除成功代表token校验通过,如果用select+delete来校验token