详解:如何设计出健壮的秒杀系统?
前言: 秒杀系统相信很多人见过,比如京东或者淘宝的秒杀,小米手机的秒杀。 那么秒杀系统的后台是如何实现的呢? 我们如何设计一个秒杀系统呢? 对于秒杀系统应该考虑哪些问题? 如何设计出健壮的秒杀系统? 本期我们就来探讨一下这个问题: 一:秒杀应该考虑哪些问题 1.1: 超卖问题 分析秒杀的业务场景,最重要的有一点就是超卖问题,假如备货只有100个,但是最终超卖了200,一般来讲秒杀系统的价格都比较低,如果超卖将严重影响公司的财产利益,因此首当其冲的就是 解决商品的超卖问题 。 1.2: 高并发 秒杀具有时间短、并发量大的特点,秒杀持续时间只有几分钟,而一般公司都为了制造轰动效应,会以极低的价格来吸引用户,因此参与抢购的用户会非常的多。 短时间内会有大量请求涌进来,后端如何 防止并发过高造成缓存击穿或者失效 ,击垮数据库都是需要考虑的问题。 1.3: 接口防刷 现在的秒杀大多都会出来针对秒杀对应的软件,这类软件会模拟不断向后台服务器发起请求,一秒几百次都是很常见的,如何 防止 这类软件的 重复无效请求 ,防止不断发起的请求也是需要我们针对性考虑的 1.4: 秒杀url 对于普通用户来讲,看到的只是一个比较简单的秒杀页面,在未达到规定时间,秒杀按钮是灰色的,一旦到达规定时间,灰色按钮变成可点击状态。 这部分是针对小白用户的 如果是稍微有点电脑功底的用户