商城网店高并发秒杀活动的处理案例。

秒杀抢购活动是现在很多商城常见的营销手段,小米抢购、淘宝的整点免单、聚划算等都是成功的例子。

从简单处着手,秒杀是很好理解的:设置要秒杀的商品的数量,抢完为止。但是,实际应用中一瞬间的高并发压力、以及并发带来的负库存是要着重考虑。

要避免负库存的出现,可以在数据库加锁,不管外部多少请求,都可以在数据库操作前给阻断。当然,这种思路可以用在流量不大的普通商品上,用在高并发的秒杀商品上显然是不合适的,直接高频率的读写操作数据库,对数据库的压力太大,严重拖性能,量大的话挂掉也是很有可能的。

这时候就需要用到缓存队列了,现在前面应用层处理并发,这个资源的消耗是比较小的,内存中的处理效率也会很快。队列处理完之后再向数据库层进行请求操作。

当然,有时候还有可能会用到文件排他锁,在处理一个订单的时候,使用flock锁定文件,如果锁定失败说明有其他进程正在锁文件处理订单,返回失败。但是只使用这个的话,个人感觉不太好,我宁愿让用户在队列中多等待几秒,也不想直接返回失败。可以在缓存队列到数据库的时候使用下这个,多加一层安全系数。

模拟场景:

商城做一个秒杀活动,秒杀的商品数量为10,秒到即得。

方案:

1、应用层做首次过滤

因为考虑到处理的失败,我们要给缓存开的总数比10稍大是最好的,那我们就给队列开的总数是50。秒杀开始后,我们的队列只接收前面50个请求,当数量满50后,在请求就返回已秒杀完。如果一瞬间的并发大于50,我们就随机取50个放入队列。

缓存的处理是在内存上处理的,效率非常高,但是在这个层面处理过之后要二次请求,可能会有稍许延迟。

2、数据层做二次过滤

从50个中随机或者排序的方式,二次“并发”按队列执行下单,这时候可以考虑使用文件锁。入库时也可考虑使用乐观锁、自定义锁、限制条件等。

经过首次处理后的数据量已经非常小了,直接操作数据库的话压力会小很多,二次过滤也能尽可能的保证数据不超出。

其他:

如果是分布式集群服务器,就需要有一个或多个多层专门的队列服务器,或者配置缓存队列共享。

此方案成立的前提是并发量很大,能接近或者超过放出的数量。如果商品库存很足,而且并发量不大,反倒影响了用户体验。

本文来自Ruesin博客这种二次过滤的架构,下来之后,能最大限度的保证程序的严谨性。

Ruesin.com小米和淘宝的抢购还是有稍许不同的,小米重在抢的那瞬间,抢到了名额,就是你的,你就可以下单结算。而淘宝则重在付款的时候的过滤,做了多层过滤,比如要卖10件商品,他会让大于10的用户抢到,在付款的时候再进行并发过滤,一层层的减少一瞬间的并发量。

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/46682.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
优化家优化家订阅用户
上一篇 2022年7月3日 00:48
下一篇 2022年7月3日 00:48

相关推荐

  • 移动端网站建设提升效率有哪些技巧。

    随着移动网络的快速发展,现在的网站建设不仅考虑PC,对移动网站开发设计的要求也很高。现在手机网站建设越来越需要注意细节。那么你有哪些提高手机网站效率的技巧? 如今,人们对网站的认知越来越清晰,网站建设已…

    2022年9月10日
    086
  • 网站运营必须重视的几点内容。

    不得不说,互联网真的是一个神奇的地方,随着互联网的发展,目前很多的企业都意识到网站建设的重要作用,纷纷的开展网站建设的业务,但是由于市场中网站数量的不断增加,相信很多运营站长应该都感觉到,现在网站运…

    2022年7月3日
    0114
  • SEO品质三要素:专业、权威、信任(EAT) 。

    前言:网页设计与SEO密切相关专业知识权威主义可信主义总结:内容的地位没有改变。 前言:网页设计与SEO密切相关。 网站在网络世界中仍然扮演着重要的角色,但要被用户注意到、看到和使用,除了通讯软件、社交媒体等渠…

    2022年9月10日
    068
  • 浅谈:2015年网页设计主流趋势是什么。

    2014年末,总结很重要。但是总结的文章看多的总不免要问,明年会如何?Well,的确是时候展望一下未来了。2014年涌现了许多令人印象深刻的网页设计趋势,幽灵按钮越来越多,视差滚动也已经成熟,单页设计也成为了诸多…

    2022年10月17日
    041
  • 网站建设过程中关于外贸建站。

    今年的跨境电商风气与往年相比,力举独立建站之风愈演愈烈,在第三方平台流量越来越贵的前提下,跨境电商从业者自己创建一个商城来完成自有产品的销售也不失为一条路子。今天就让网站建设公司来说说关于外贸建站的…

    2022年10月17日
    045
  • 教你网站建设/搜索引擎营销SEM推广技巧。

    搜索引擎营销(Search Engine Marketing),我们通常简称为SEM,搜索引擎营销的基本思想是让用户发现信息,并通过搜索引擎搜索点击进入网站进一步了解他所需要的信息。一般认为,搜索引擎优化设计主要目标有2个层次…

    2023年6月26日
    01
  • 网站建设如何提升网站用户体验有何方法。

    提升客户体验对优化排名和企业有重要作用。但是“客户体验”这个词,一般人只能从字面上理解,不能深入理解。对于企业建设网站来说,提升客户对网站的体验涉及到很多细节,基本都是和客户相关的。就像网站的打开速度…

    2022年9月10日
    068
  • 网站首页如何设计会更出彩。

    在一个网站设计工作中,首页设计可以说是一个非常重要的重要,它能在第一步就吸引到更多的用户浏览,获得更多的流量,那么对于网站首页要如何设计才能更加出彩? 一、明确告诉用户是哪里? 要想提升用户体验,并且…

    2022年10月20日
    035

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息