【面试】——如何处理高并发和超卖现象

1、 秒杀带来的问题:高并发和超卖

   1.高并发:大量用户同一时间抢购,网站瞬时访问量剧增,导致服务器压力大 
   2.超卖: 成功下订单买到商品的人数,超过数据库最大库存数量

2. 前端解决方案

A 扩容:
加机器,这是最简单的方法,通过增加前端池的整体承载量来抗峰值。
B 静态化:
将页面能够静态化的元素全部静态化,并减少动态元素,通过CDN加速来抗峰值 [内容分   发网络,缓存服务器]
C 限流:
ip限流.针对某一个ip地址,限制单位时间内访问次数 [防止黄牛刷单]
D:其他
在活动入口的地方设置关卡游戏或者问题环节,削弱峰值

3、后端出现高并发和超卖的原因

I:首先MySQL自身对于高并发的处理性能就会出现问题,一般来说,MySQL的处理性能会随着并发thread上升而上升,但是到了一定的并发度之后会出现明显的拐点,之后一路下降,最终甚至会比单thread的性能还要差。

II:其次,超卖的根结在于减库存操作是一个事务操作,需要先select,然后insert,最后update -1。最后这个-1操作是不能出现负数的,但是当多用户在有库存的情况下 并发操作,出现负数这是无法避免的。

III:最后,当减库存和高并发碰到一起的时候,由于操作的库存数目在同一行,就会出现争抢InnoDB行锁的问题,导致出现互相等待甚至死锁,从而大大降低MySQL的处理性能,最终导致前端页面出现超时异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值