高并发带来的重复提交问题解决方案
来源:互联网 发布:乐高机器人的所有编程 编辑:程序博客网 时间:2024/05/22 03:17
问题描述:用户下订单购买,因为各种原因(网络卡,快递点击等)重复提交2个或者以上一模一样的订单,由于是同时提交的,第一个订单执行扣款生成订单未完成时候,第二个已经进来了,导致付一笔钱购买了2次或多次商品
解决方案:
1、缓存lock,缓存此用户的操作行为,注意紧紧缓存操作的标志,下次进入判断此标志是否存在,存在即不进入数据库事务
2、应用程序application lock,和1相比,会阻塞其他用户的正常行为
3、模仿银行扣款机制,数据表建一个随机唯一标志,每次请求带上这个标志,操作的同时进行修改这个标志
4、应用程序生成唯一标志,数据库做字段的唯一索引
5、扣款为负数的事务进行回滚
6、使用事务的隔离级别
7、使用redis的incr控制用户的并发数,memcache的add也可以实现这种效果,memcached借助cas
不建议使用锁,使用不当,容易造成整个数据库挂掉
参考文章:http://blog.csdn.net/flutterkey/article/details/45056333
http://www.cnblogs.com/badboy2008/articles/499283.html
http://mogu.io/prevent-duplicate-requests-4/comment-page-1#comments
http://blog.csdn.net/ugg/article/details/41894947
http://blog.csdn.net/ugg/article/details/41894947
抢红包策略
http://www.tuicool.com/articles/zQf6zq
0 0
- 高并发带来的重复提交问题解决方案
- 高并发下重复提交问题的处理
- memcach高并发数据失效的问题解决方案
- 返回提交页面问题,重复提交问题解决方案
- 关于异步化带来的高并发和高吞吐量
- 高并发热点/单点数据_性能问题解决方案
- 高并发热点/单点数据_性能问题解决方案
- 高并发 php uniqid 不重复唯一标识符生成方案
- 高并发 php uniqid 不重复唯一标识符生成方案
- 高并发 php uniqid 不重复唯一标识符生成方案
- 高并发 php uniqid 不重复唯一标识符生成方案
- 表单重复提交问题解决
- 高并发下的 Nginx 优化方案
- 高并发下的 Nginx 优化方案
- 高并发下的 Nginx 优化方案
- 解决网站高并发的方案
- asp.net解决高并发的方案
- asp.net解决高并发的方案
- 最长上升子序列的两种方法
- 传感器应用集合
- 再记看牡丹
- ORACLE连接 (+)和Join总
- NYIST 811变态最大值
- 高并发带来的重复提交问题解决方案
- 第5周 经典小程序2题 C语言实现的猜拳游戏(剪子锤子布)
- kafka Java实例
- PHP中的$this用法
- 从零开始变大牛
- hibernate shards分库的实现
- hdu 5665 Lucky(简单题)(bestcoder#80 1000)
- 下载网页上的各种视频只需四步
- dp 16