2 q84375105 q84375105 于 2016.03.10 15:10 提问

关于高并发 数量剩余的问题 5C

我现在在做一个类似网易一元抢宝的项目(这个项目不需要生成订单),在支付结算的时候出现了好多问题,求大神帮我解决。
第一点:
加入该商品剩余商品50件,同时有好几百个人都把这个商品加入了购物车,第一个人和第二个人都想买30件商品,第一个人付款成功了,这个时候剩余商品就会变成了20件,但是第二个人此时购物车里如果不刷新的话还是能够买50件商品的,这个时候我该怎么解决这个问题?

第二点:
还上面的情况,两个人都买30件商品,同时进入了支付界面,第一个人比第二个人先购买了30了支付成功,第二个购买的30个按理说是不能购买到的,那这个问题怎么办?

第三点:
最后一件商品,多个人都加入了购物车,同时进入了支付页面,第一个人完成了支付,后面的人应该是支付失败的,这个该怎么办?

       其实我绝对这个就是一个问题,怎么解决高并发问题,我知道有个叫memcache 队列大概能解决,但是我也不会这个东西啊,求大神仔细说说流程,用到了哪些技术,怎么实现或者搭建这个技术。。。。。万分感谢  

2个回答

rui888
rui888   Ds   Rxr 2016.03.10 15:22

memcache redis 这里的作数据缓存队列,内存数据库的效率高点。开始的时候商品放入到队列中,一个人一个事务,排队操作。
当然1000个人并发和10000个人并发处理是不一样的,并发大的做负载均衡。

因为没遇到过此类的需求,有可能说的不对见谅。

q84375105
q84375105 我知道是用到缓存,但是我不会使用缓存啊。。。。
接近 2 年之前 回复
oyljerry
oyljerry   Ds   Rxr 2016.03.10 17:04

先把每个人的提交等,放到Redis的队列中,然后再从队列中按顺序一个个取出来执行,这个时候,购买需要有事务处理,比如通过数据库等,这样第一个人购买成功后,第二个购买的时候,数据库只剩20个商品了,因为30个购买就失败了,然后把失败返回给客户端

q84375105
q84375105 我知道是用到缓存,但是我不会使用缓存啊。。。。
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!