表单重复提交前端
方案:redis
一、js作置灰按钮、数据库
二、后台生成一个token给前端,前端提交带着token,后台接收到token后,和session中的比较,匹配,则删除token。若是不匹配不容许提交, 多机器分布式不适用这种(除非session复制共享)session
三、方案2的分布式版本,经过redis的setnx或者redLock进行分布式锁, 或者经过zookeeper实现的分布式锁并发
数据库并发插入分布式
方案:索引
一、数据库创建惟一索引,相同的数据,只会成功1条token
二、加锁io