首先基于我们平台的业务场景
由于类似于秒死活动 每次活动发布商品数量是1000份,基于现在用户量是50w,所以在限时开售时瞬时用户访问量会猛增到30w左右。项目架构采用的是微服务,这点用户量对于系统没什么压力,但是部分用户会采用外挂来刷抢购接口(基于目前用户请求加cc攻击下单接口1分钟访问量能达到50w+甚至于100w+,这里采用的是阿里云的web防火墙能拦截大部分cc攻击)。
基于开售瞬间所有用户都在点击抢购按钮,前端做的限制是3秒一次请求,而后端使用的下单接口收到请求后加入到队列 由队列去处理生成订单逻辑(要么订单成功生成 要么失败),app收到下单接口返回的订单code反查是否有生成订单,有则跳支付页,无则返回详情页,大致就这样子,其它具体细节不一一说明了
库存防止超卖采用的是分布式锁,在服务消费者做了令牌桶处理,在网关针对热点接口做了单用户限流
数据库读的压力很大 必须做读写分离,主从,架构必须把热点接口单独抽出来做成微服务 防止影响其它服务