赞
踩
秒杀业务的根本在于应用缓存提高并发量,减少数据库访问。使用mq缓冲将大流量数据进行削峰填谷,另外注意接口的防刷限流,还有就是如何解决超卖问题。
**并发的根源在于数据库,通常采用缓存+队列的方式减少数据库访问,降低访问速度。**可以采用redis+mq的方式实现。
秒杀业务的商品和订单单独设表,不要和正常商品和商品订单混合一起。表格数据足够少,才能保证查询和写入速度。
订单表将用户id和商品id设置为唯一索引,这样能保证同一个用户不会购买两件相同的秒杀商品。
秒杀商品表商品库存更新语句添加>0条件,保证商品不会超卖。(我们项目中是在controller层就做了判断,如果库存已经小于0,那么我们直接拒绝请求,防止多余的压力打到数据库上面)
update miaosha_goods set stock_count = stock_count - 1 where goods_id = #{goodsId} and stock_count > 0
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。