秒杀场景问题

2019-04-03  本文已影响0人  钧辉

       最近面试,关于商品秒杀的问题被问了多次,在这里记录一下个人的一些解决思路。
       首先我们需要先了解下秒杀场景会出现什么问题

  • 高并发,同一时间大量用户请求秒杀接口
  • 超发,也就是有可能出现1个商品发给了2个用户,这个时候数据库记录的库存可能为负

       围绕上面2个问题,我们可以通过下列的一些措施来避免:

    $fp = fopen('a.txt', 'r'); //a.txt是你创建的文件,里面什么都不用写,创建出来就行了
    //获取文件锁成功,非阻塞,如果资源已被占用,请求直接到else操作
    if(flock($fp, LOCK_EX | LOCK_NB)){ 
        //TODO 你的逻辑处理
        flock($fp, LOCK_UN); //释放文件锁
    }else{
        //TODO 获取失败
    }
    fclose($fp); //关闭文件资源

       以上就是关于秒杀场景的一些解决措施,希望对你有所帮助。

上一篇下一篇

猜你喜欢

热点阅读