在商城项目开发中怎么保证促销商品不会超卖
2018-05-03 10:42
288 查看
怎么保证促销商品不会超卖
这个问题是我们当时开发时遇到的一个难点,超卖的原因主要是下的订单的数目和我们要促销的商品的数目不一致导致的,每次总是订单的数比我们的促销商品的数目要多,当时我们的小组讨论了好久,给出了好几个方案来实现:
第一种方案是:①在每次下订单前我们判断促销商品的数量够不够,不够不允许下订单,更改库存量时加上一个条件,只更改商品库存大于0的商品的库存,当时我们使用ab进行压力测试,当并发超过500,访问量超过2000时,还是会出现超卖现象。所以被我们否定了。
第二种方案是:②使用mysql的事务加排他锁来解决,首先我们选择数据库的存储引擎为innoDB,使用的是排他锁实现的,刚开始的时候我们测试了下共享锁,发现还是会出现超卖的现象。有个问题是,当我们进行高并发测试时,对数据库的性能影响很大,导致数据库的压力很大,最终也被我们否定了。
第三种方案是:③使用文件锁实现。当用户抢到一件促销商品后先触发文件锁,防止其他用户进入,该用户抢到促销品后再解开文件锁,放其他用户进行操作。这样可以解决超卖的问题,但是会导致文件得I/O开销很大。
最后我们使用了redis的队列来实现。将要促销的商品数量以队列的方式存入redis中,每当用户抢到一件促销商品则从队列中删除一个数据,确保商品不会超卖。这个操作起来很方便,而且效率极高,最终我们采取这种方式来实现
阅读更多相关文章推荐
- MVC模式开发图书商城项目分析
- 做项目的研发模式,即怎么研发一个系统,一步一步怎么做:UP、RUP、迭代式、瀑布式、快速原型、敏捷开发,区别
- 谈下论坛和商城的开发项目
- 软件开发人员简历项目经验怎么写
- 【SSH网上商城项目实战09】添加和更新商品类别功能的实现
- 商城项目实战 | 8.2 SwipeRefreshLayout 实现可以下拉刷新和加载更多的热门商品列表
- 给您参考,现在开发数据库项目用.net 2005成熟吗?还是用.net2003比较有保证
- 商城项目笔记1,顶层商品类别的添加(注意JSP,Bean,DAO,DB的分层书写结构)
- Android 安卓怎么将你开发的项目部署到真实手机中并抓取真机屏幕
- SSH框架网上商城项目第12战之添加和更新商品功能
- 软件开发人员的简历项目经验怎么写?
- 工作4-5年的.NET开发人员也需要有人带带才可以保证软件项目的质量
- 【SSH网上商城项目实战28】使用Ajax技术局部更新商品数量和总价
- 一个项目怎么开发出来
- 【SSH网上商城项目实战29】使用JsChart技术在后台显示商品销售报表
- 干货:产品经理怎么寻找软件开发项目
- 【SSH网上商城项目实战11】查询和删除商品功能的实现
- HTML5商城开发四 多图或多商品的水平滚动展示
- 【商城开发四】Android商品详情全部评价(下拉刷新+上滑加载更多)
- 商城项目实战24:实现添加商品功能