web 网站抢购并发
2016-02-22 23:57
387 查看
网站需要开发一个限时限量抢购功能。
遇到问题:
当很多人同时抢一个东西时,会超出限制数量。
原因:生成订单之前有一系列判断,很多用户同时进行这些判断,通过之后保存订单,这里有很多用户会通过购买验证,导致超量。
第一种解决方案:
抢购的实质还是排队,先抢先得。
个人观点,做成队列,服务端和客户端异步。所有通过验证的用户都把信息丢入队列,服务端依次从队列里取用户,取满为止。
这样可以解决超量问题,不过客户端抢购结果会有一定延迟。
第二中解决方案:
可以将商品数量保存到redis中,多个用户对商品数量key调用decr命令,并且都会返回一个值,只有当返回的值大于零时,才生成订单,其他的都算是抢购失败,redis是单线程处理数据的,所以不会有并发问题,至于效率肯定比数据库快!希望能帮到你!
遇到问题:
当很多人同时抢一个东西时,会超出限制数量。
原因:生成订单之前有一系列判断,很多用户同时进行这些判断,通过之后保存订单,这里有很多用户会通过购买验证,导致超量。
第一种解决方案:
抢购的实质还是排队,先抢先得。
个人观点,做成队列,服务端和客户端异步。所有通过验证的用户都把信息丢入队列,服务端依次从队列里取用户,取满为止。
这样可以解决超量问题,不过客户端抢购结果会有一定延迟。
第二中解决方案:
可以将商品数量保存到redis中,多个用户对商品数量key调用decr命令,并且都会返回一个值,只有当返回的值大于零时,才生成订单,其他的都算是抢购失败,redis是单线程处理数据的,所以不会有并发问题,至于效率肯定比数据库快!希望能帮到你!
相关文章推荐
- java-WEB中的监听器Lisener
- GUI - Web前端开发框架
- Extjs4.0 最新最全视频教程
- MyEclipse Web Project转Eclipse Dynamic Web Project
- axis备忘
- Erlang实现的一个Web服务器代码实例
- 防止网页脚本病毒执行的方法-from web
- 自学成才的秘密:115个 web Develop 资源
- 使用批处理修改web打印设置笔记 适用于IE
- Apache Web让JSP“动”起来
- web下载的ActiveX控件自动更新
- 推荐六款WEB上传组件性能测试与比较第1/10页
- 关于三种主流WEB架构的思考
- 使用 Iisext.vbs 列出 Web 服务扩展文件的方法
- 使用 Iisext.vbs 删除 Web 服务扩展文件的方法
- 使用 iisext.vbs 禁用 Web 服务扩展的方法
- 用vbs 实现从剪贴板中抓取一个 URL 然后在浏览器中打开该 Web 站点
- web标准知识——从p开始,循序渐进
- web标准知识――用途相似的标签
- ajax与传统web开发的异同点