您的位置:首页 > 运维架构 > 网站架构

web 网站抢购并发

2016-02-22 23:57 387 查看
网站需要开发一个限时限量抢购功能。
遇到问题:
当很多人同时抢一个东西时,会超出限制数量。
原因:生成订单之前有一系列判断,很多用户同时进行这些判断,通过之后保存订单,这里有很多用户会通过购买验证,导致超量。

第一种解决方案:

抢购的实质还是排队,先抢先得。
个人观点,做成队列,服务端和客户端异步。所有通过验证的用户都把信息丢入队列,服务端依次从队列里取用户,取满为止。
这样可以解决超量问题,不过客户端抢购结果会有一定延迟。

第二中解决方案:

可以将商品数量保存到redis中,多个用户对商品数量key调用decr命令,并且都会返回一个值,只有当返回的值大于零时,才生成订单,其他的都算是抢购失败,redis是单线程处理数据的,所以不会有并发问题,至于效率肯定比数据库快!希望能帮到你!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  web 网站抢购并发