zoukankan      html  css  js  c++  java
  • 秒杀接口采用异步下单

    这是秒杀接口的伪代码

    1) 判断用户是否重复秒杀
        if(判断redis中该用户秒杀结果){
            sout(请不要重复秒杀)
            return
        }
    
    2)redis预减库存
        if(判断redis中该用户预减库存标识){
            sout(正在排队中)
            return
        }else{
            redis预减库存
            设置该用户的预减库存标识
        }
    
    3)封装请求信息,并发送到消息队列
    
    4)从队列中取出消息
       mysql中减库存,生成订单,将订单信息写到redis中,并把redis中该用户预减库存标识删除
    
    5)前端通过ajax每隔1秒钟查询redis中的秒杀结果

     在部署单个tomcat时,经过压测,当并发量为3000时,QPS达到了2000多。

      可以采用的扩展方法有:tomcat部署集群,nginx限流等。

  • 相关阅读:
    linux基础指令(下)
    Linux基础命令(中)
    wtforms校验组件
    Linux基础命令(上)
    Scrapy
    SQLAlchemy
    自定义命令
    flask-session
    解决Failed to allocate memory: 8转
    如何做需求
  • 原文地址:https://www.cnblogs.com/moris5013/p/12350259.html
Copyright © 2011-2022 走看看