秒杀与超卖的 性能解决之路
一、秒杀带来了什么? 这个环节是最考验业务提供方的抗压能力的。 抢订单环节一般会带来2个问题: 1、高并发 比较火热的秒杀在线人数都是10w起的,如此之高的在线人数对于 任何商品都会有数量上限,如何避免成功下订单买到商品的人数不 首先,产品解决方案我们就不予讨论了。我们只讨论技术解决方案 1、前端 A:扩容 加机器,这是最简单的方法,通过增加前端池的整体承载量来抗峰值。 将活动页面上的所有可以静态的元素全部静态化,并尽量减少动态元素。通过CDN来抗峰值。 C:限流 一般都会采用IP级别的限流,即针对某一个IP,限制单位时间内发起请求数量。 或者活动入口的时候增加游戏或者问题环节进行消峰操作。 D:有损服务 最后一招,在接近前端池承载能力的水位上限的时候,随机拒绝部分请求来保护活动整体的可用性。 2、后端 那么后端的数据库在高并发和超卖下会遇到什么问题呢? 主要会有如下3个问题:(主要讨论写的问题,读的问题通过增加cache可以很容易的解决) 针对上述问题,如何解决呢? 我们先看眼淘宝的高大上解决方案: I: 关闭死锁检测,提高并发处理性能。 II:修改源代码,将排队提到进入引擎层前,降低引擎层面的并发度。 III:组提交,降低server和引擎的交互次数,降低IO消耗。 解决方案1: 不会出现互相等待