持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第23天,点击查看活动详情
每日英语:
Time is the biggest innovation.
翻译:时间乃是最大的革新家。 ——培根
秒杀业务特点介绍
秒杀业务是互联网公司电商项目中的标志性业务,是典型的高并发场景。秒杀业务主要的问题是大量用户短时间内涌入,导致瞬时流量巨大,对于数据库、缓存的性能是一个巨大考验。
1)高并发
我们通常衡量一个服务器的吞吐率的指标是QPS(每秒处理请求数),解决每秒数万次的高并发场景,这个指标非常关键。
假设处理一个业务请求平均响应时间为 100 ms,同时,系统内有 20 台 服务器,配置最大连接数为 500 个,Web 系统的理论峰值QPS为(理想化的计算方式):100000 (10万QPS)意味着1 秒钟可以处理完 10 万的请求,而“秒杀”的那 5w/s 的秒杀似乎是“纸老虎”。
然而实际情况,在高并发的实际场景下,服务器处于高负载的状态,网络带宽被挤满,在这个时候平均响应时间会被大大增加。随着用户数量的增加,数据库连接进程增加,需要处理的上下文切换也越多,造成服务器负载越来越重。
2)业务耦合高
秒杀最大的问题是,当系统上某个应用因为延迟而变得不可用,用户的点击越频繁,恶性循环最终导致“雪崩”,因为其中一台服务器挂了,导致流量分散到其他正常工作的机器上,再导致正常的机器也挂,然后恶性循环,将整个系统拖垮。
3)冷热商品处理
秒杀过程中并发量极高被抢购的商品其实并不多,都是大家所熟知的一些品牌和商品,针对这些商品我们应该和抢购人数并不是特别多的商品进行区分,热门商品走排队系统,非热门商品直接抢单即可。
在秒杀过程中,还会出现一些特殊现象,例如一直都是冷门的商品口罩在2020年突然变成全球热门产品,流量突然增长的产品,我们系统要具备发现能力。
总结
本篇主要介绍了一下秒杀业务的三个特点:高并发、业务耦合高、冷热商品处理。下一篇会介绍一下秒杀的架构设计和表设计。