Sku所想

  先来看一段锁库存代码:

  

   不用看具体代码逻辑,意思很简单,在数据库表设计过程中,下订单后,锁定下单的库存,等待付款。

   这段代码从功能上讲,这个逻辑看似没问题,但是在并发角度讲,问题很大了。

   首先,想象一下,两个线程都在执行这段逻辑(就两个买家都在买同一个商品),当买家1执行到set,还未执行到update时候,买家二也只是执行到set结束,

可以试着看一下,会产生脏数据!库存后期是不可能对应上的。

   再问github上看了很多商城类代码,下单,锁库,数据同步各有各的方法,但很少用的对。(个人感觉,不喜勿喷!)

   首先,现如今在下订单购买商品时,商品信息会在缓存保存一份(甚至多分,如redis),利用分布式redis锁去锁库。

   其次,在商品下单时,有是否是秒杀之分。秒杀商品,是要先抢到商品资源,并且付款成功,才算成功。

  非秒杀商品,一般情况 ,会给你十几分钟付款时间,在这段时间,库存是被锁住的。

   对于商城类网站来说,后台设计真的要考虑一下高并发情况。

   

   

   

 

猜你喜欢

转载自www.cnblogs.com/lzphu/p/12503772.html