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