简单抢购系统设计

原创 2018年04月16日 22:50:08

面试或者工作中经常能遇到类似于抢购或者是并发争夺默写限量资源的需求,有一些想法但是比较乱,这里刚好整理一下。


一个抢购活动主要由这几部分组成

        1.页面刷新-刷新时间/可购买数量

        2.下单-争夺购买资格

        3.支付-更新订单状态


页面刷新处理办法:

    1.页面静态化

    2.反向代理缓存静态页面

    3.所需动态参数通过接口获得,不要经过框架渲染

    4.提供参数的接口不要由查询数据库的操作,所有抢购参数全部放在内存或者缓存中


下单处理办法:重点

    1.过滤器过滤请求(可以视抢购是否真的很大的并发量选择开启):主要是考虑以某种假随机的方式过滤掉一部分请求,例如获取随机数在某个范围内才允许继续抢购/IP尾号为某几个数才允许继续抢购

    2.过滤器过滤掉恶意请求:限制某一账号频繁请求/某一账号第一次进入抢购后进行记录,再次进入则在过滤器处拦截返回提示抢购中;限制某一IP频繁请求对IP一秒内请求5-10次的拉入黑名单30秒/60秒,此情况可返回线路繁忙/抢购繁忙

    3.占用库存:重点

    单点系统用内存,分布式可以用缓存,将此次抢购商品数量放入其中。或者采用占用资格即增加的方式,维护库存。

    经过上面一系列的拦截过滤,假设有10件商品参与抢购,有1000个用户参与到抢购活动中来,前面两种过滤后期望剩余用户数为100。

    单点系统调用同步方法(没测试过)对内存中的库存进行操作。

    分布式方法可以对redis的key进行incr或decr维护缓存中的库存。

    占用库存成功的将继续生成订单即支付,未有机会执行占用库存的,需要对库存进行判断,如果大于等于抢购数量则返回抢购失败。

    4.下单:可异步生成订单,直接返回抢购成功,请去订单列表支付(体验不太好)。或者就同步生成订单,跳转订单页面进行支付。


支付处理办法:

    1.与银行支付通讯必须是同步的,如果有notify,则在notify结束后修改订单状态。


记录一下,以后会补上一个简单抢购系统的详细代码实现。

大规模分布式机器学习系统设计和实践经验

人工智能在线技术峰会是CSDN倾力打造、旨在为领域内技术爱好者了解国内外相关公司及科研机构最新研发动态和应用案例实践分享的课堂。课程邀请一线公司技术骨干做深度解读。本期我们邀请了阿里巴巴、思必驰、第四范式、一点资讯、58集团、PercepIn等在人工智能领域技术领先公司的核心研发成员,在人脸识别、卷积神经网络、大规模分布式机器学习系统搭建、推荐系统等话题分享他们的心得和经验。
  • 2017年05月15日 17:12

限时抢购秒杀系统架构分析与实战

转发:http://www.jb51.net/article/77560.htm 1 秒杀业务分析 正常电子商务流程 (1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订...
  • evan_shc
  • evan_shc
  • 2016-02-03 15:38:26
  • 2891

高并发秒杀系统架构设计 · 抢购、微信红包、一元夺宝

秒杀业务在各业务中已然非常流行,这里我将互联网行业中的秒杀定义为:在非常短的时间内,将一件商品分成多份进行购买的行为。微信抢红包、一元夺宝、双11大促抢购等业务本质上都可视作秒杀业务。而最近大热的抢红...
  • u013322876
  • u013322876
  • 2017-03-07 12:54:29
  • 1783

京东高并发抢购系统的核心逻辑与架构实现

1、服务介绍 限时抢购又称闪购,英文Flash sale,起源于法国网站Vente Privée。闪购模式即是以互联网为媒介的B2C电子零售交易活动,以限时特卖的形式,定期定时推出国际知名品牌的...
  • csdn265
  • csdn265
  • 2017-04-15 22:55:16
  • 3365

互联网秒杀业务架构设计 / 秒杀系统架构分析与实战

http://my.oschina.net/xianggao/blog/528800 http://my.oschina.net/xianggao/blog/524943 ...
  • liangxw1
  • liangxw1
  • 2016-05-17 13:22:43
  • 1975

Redis实现高并发下的抢购、秒杀功能

欢迎大家关注我的其他Github博客和简书,互相交流! 博主最近在项目中遇到了抢购问题!现在分享下。 抢购、秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个: 1 高并发对数...
  • u014377963
  • u014377963
  • 2017-04-07 17:44:55
  • 3519

电商抢购服务高并发设计

服务介绍 限时抢购又称闪购,英文Flash sale,起源于法国网站Vente Privée。闪购模式即是以互联网为媒介的B2C电子零售交易活动,以限时特卖的形式,定期定时推出国际知名品牌的...
  • u010942020
  • u010942020
  • 2016-07-27 13:48:17
  • 2188

高并发web系统设计

一、一般高并发web系统 这里的一般指的是秒杀之类的电子商务系统,比如说小米抢购、淘宝双十一、秒杀活动等等,12306订票网站与其有本质区别,下面会有说到。 系统架构图 下图是我调查众多资料...
  • qq_26562641
  • qq_26562641
  • 2016-11-15 14:31:07
  • 1352

秒杀抢购开发总结

1.因为前端页面时间跟服务器时间不一致或者存在网络传输时间 因此后端需要校验当前请求访问的时间是不是在秒杀时间内,如果不存在则不允许抢购 2.秒杀肯定是要部署多台服务器,如果存在库存或者其他的统一的问...
  • seapeak007
  • seapeak007
  • 2017-08-21 18:36:02
  • 663

高并发抢购思路

电商的秒杀和抢购,对我们来说,都不是一个陌生的东西。然而,从技术的角度来说,这对于Web系统是一个巨大的考验。当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要。这次我们...
  • qq_34341290
  • qq_34341290
  • 2016-11-24 08:57:06
  • 3586
收藏助手
不良信息举报
您举报文章:简单抢购系统设计
举报原因:
原因补充:

(最多只允许输入30个字)