栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

秒杀抢购 day7--用户下单

秒杀抢购 day7--用户下单

目录
  • 用户下单
  • 抢单分析
    • 非热点商品抢单
    • 热点商品抢单
      • 抢单流程分析

用户下单
商品分为热点商品抢单和非热点商品抢单,因此此系统中抢单模式并非一种。
抢单分析


下单的核心业务是,先判断商品是否为热点商品,如果是非热点商品,则直接调用订单系统进行下单操作,如果是热点商品,则向Kafka生产消息进行排队下单,订单系统会订阅排队下单信息,这样可以降低服务器所直接承受的抢单压力,这种操作也叫队列削峰。

非热点商品抢单

​ 我们在订单系统中实现非热点商品抢单操作,非热点商品只用在订单系统中实现抢单即可,但抢单的时候要注意这么几个问题:

1.先递减库存,需要保证减库存的原子性操作
2.库存递减成功后,再执行下单
3.因为涉及到商品和订单两个微服务,所以下单失需要实现分布式事务
4.下单成功后,要记录用户抢单信息,指定的时间内不允许再抢该商品(这里指定24小时内只能秒杀一次)
热点商品抢单

​ 上面我们完成了非热点商品抢单,接着我们实现以下热点商品抢单。热点商品和非热点商品不一样,热点商品已经隔离出来,在Redis缓存中,并且热点商品抢单要实现高效率操作而且还能抗压,Nginx的并发能力远远超越tomcat,因此热点商品抢单我们可以使用Lua+Nginx。

抢单流程分析

​ 用户进入抢单流程,通过Lua脚本判断令牌是否有效,如果有效,则进入抢单环节,抢单环节执行过程我们做一个分析:

1.判断该商品用户是否在24小时内购买过
2.如果购买了,直接提示用户24小时内无法购买
3.如果用户没有购买过该商品,则判断该商品是否属于热点商品
4.如果是非热点商品,则走非热点商品抢单流程
5.如果是热点商品,则走热点商品抢单流程
6.判断该商品用户是否已经排队,如果没有排队,则进入排队,如果已经排队,则提示用户正在排队
7.下单过程交给订单系统,订单系统通过队列订阅读取用户下单信息,并进行下单
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/618214.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号