秒杀活动流程
2022-05-23 10:33:40 0 举报
秒杀活动流程图架构图
作者其他创作
大纲/内容
开始
是否扣减库存
否
是
是否重复秒杀
是否返回结果
结束
是否已结束秒杀
DATA
秒杀结果
库存是否大于0
秒杀活动架构
Rule
发送优惠券
库存扣减是否成功
Portal
继续等待或去秒杀其他商品,很可能等不到结果
秒杀返回true请求秒杀结果timer
OrderProduct Service
RDS
等待
订单流程
是否存在缓存
设置商品秒杀已结束缓存
缓存分类:1.商品列表2.商品详情3.商品库存,初始化为可售库存,以递减方式扣库存
秒杀
是否支付成功(一定是成功的)
Controller
设置缓存
生成创建订单消息加入队列
是否超时
是否创建过优惠券订单
获取商品信息
是否活动订单
扣减库存采用乐观锁+版本号方式实现,防止超卖
定时器请求
是否优惠券订单
秒杀下单队列处理
原订单流程
支付回调
跳转订单详情
查询商品列表和详情
秒杀下单
是否优惠券商品
MQ
缓存 提升系统访问速度和增大系统处理容量降级 当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开限流 通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理(mq、ratelimiter)
校验库存是否大于0
支付
减库存
下订单并生成秒杀订单(带活动ID)
-1:秒杀失败0:排队中orderId:成功
true
Redis
返回商品列表
秒杀成功
获取商品列表
规则
从缓存递减商品库存
查询秒杀商品列表
是否限流
0 条评论
下一页