1、抢购业务分析前端
(1) 低廉的价格mysql
(2) 大幅推广react
(3) 瞬间售空nginx
(4) 定时上架,定时结束redis
(5) 并发量高sql
(1) 对现有业务的冲击数据库
(2) 高并发的环境下,数据库负担后端
(3) 高并发状况下网络的波动缓存
(4) 前端对数据显示的处理服务器
(5) 产品定时上架的处理
(6) 库存的“超卖”现象
(7) 秒杀器的应对
减轻后端数据层,数据读取的压力,防止服务器轻易挂掉
减小数据库的读取次数
采用先后端分离的模式,后端只提供数据的操做,不负责前端页面的处理。采用RESTful API为前端提供数据,或者修改数据。前端采用react技术开发SPA单页应用,分离先后端,解耦系统,提升系统的稳定性和健壮性。采用nginx做为前端也后端交接的中转站,实现代理和负载均衡,减轻后台的请求静态资源,提升系统总体的稳定性。
(1) 采用nginx和CDN作反向代理,快速响应来自于全国各地的请求,从而解决网络带宽的瓶颈。
(2) 倒计时的问题,因为客服端时间和服务器时间不一致,会致使抢购失败或者提早抢购。因此采用每隔一段时间,进行先后端时钟的同步。
(3) 当时间未到的时候,前端进行请求的拦截,采用节流的方式禁止前端在未开始时发送无效的请求。
(1) 在请购的API接口,实现一个抢购队列,放在“插队”行为。
(2) 采用mysql进行数据的存储,采用redis进行数据的缓存,在抢购开始的时,从mysql数据库中读取一次数据,把读取到的商品信息保存在redis缓存中,当每次执行抢购的时,从redis中读取商品信息,并修改相应库存,减轻mysql数据库的频繁读写。
(3) 在抢购成功过之后,若是用户在20分钟以内为付款则,商品从新进入抢购队列中进行抢购。
添加抢购商品流程:
前端抢购流程
后端处理数据流程