1.业务要求:
页面的数据只能被点击提交一次
2.发生原因:
由于重复点击或者网络重发,或者nginx重发等情况会导致数据被重复提交
3.解决办法:
集群环境:采用token加redis(redis单线程的,处理需要排队)
单JVM环境:采用token加redis或token加jvm内存
4.处理流程:
1. 数据提交前要向服务的申请token,token放到redis或jvm内存,token有效时间
2. 提交后后台校验token,同时删除token,生成新的token返回
token特点: 要申请,一次有效性,可以限流
5.注意:
redis要用删除操作来判断token,删除成功代表token校验通过,如果用select+delete来校验token,存在并发问题,不建议使用
原文:http://www.cnblogs.com/netfocus/p/5453930.html