秒杀接口采用异步下单

这是秒杀接口的伪代码

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限流等。

posted @ 2020-02-23 16:19  踏月而来  阅读(506)  评论(0编辑  收藏  举报