秒杀的主要问题就是别卖超了,因为应用服务器有多台,所以synchronized肯定是不行的,直接访问DB肯定更不行了,那就只能是使用memcache或者redis之类来实现。有知道细节的没?

解决方案 »

  1.   


    memcache存成个list,index超出的部分返回错误值?或者不put?
      

  2.   

    http://www.iteye.com/topic/1119017?page=1
    这里有一些关于秒杀的讨论,可以参考一下。
      

  3.   

    多台服务器,数据共享。memcache当然行了。
    其实数据库也行,就是效率太低,不太实用:你把相应的记录锁住或者把表锁了,就可以实现了。
      

  4.   

    直接用db我觉得可以啊,update时指明剩余数量要大于0,如果update返回1+则说明抢到了,返回0则说明没抢到,即便在update之前想做一些check那可以开事务然后select for update加个锁
      

  5.   

    为什么都要想到数据端呢?
    考虑程序端解决啊,调用同一个接口,形成队列,然后处理队列的Index就OK了!
      

  6.   

    可以使用memcache将秒杀产品读入存储 每次秒杀通过MQ操作 有序进行 逐个递减
      

  7.   

    公司网站(asp.net)几次秒杀都失败了,架构是基于:IIS+接口+oracle,后采用apache,在线用户数也就11000就挂了,谁有经验可以交流下?!是不是应该采用Haproxy或nginx ?!