如何对秒杀系统进行流量削峰?如何设计一个秒杀系统
本文目录
如何对秒杀系统进行流量削峰
首先我们看一下秒杀系统的业务流程,大致如下:
1.首先判断库存够不够
2.如果够就扣库存
3.创建订单然后支付
接下来我们需要了解秒杀系统的一个特征,往往是请求远远大于库存量,几千或者上万的用户去抢一个商品,也就是说可能90%的请求最后其实都是无效的;所以在这个前提下我们来看看如何削峰;
1.分布式限流
如何过滤掉大部分无效的流量,比如秒杀的订单量为10,就算来了100w的用户,最后其实也只会生成10个订单,所以在前端就把无效的用户拦截,防止大量的请求都去检查库存是不是够,导致数据库挂掉;分布式限流可以通过redis去实现,初始化一个限制大小即可,超过限制大小直接丢弃请求;
2.分布式缓存库存
比如我们数据库里面有10件商户用来秒杀,其实可以把这个数据放在分布式缓存里面,这样检查库存的时候就不需要去查数据库了,直接在缓存里面检查,速度会快很多;
3.异步扣库存
扣库存肯定要同步到数据库中,这时候其实可以不用同步更新,可以通过消息队列来异步更新,比如rocketmq,每次把更新操作放入队列即可,由消费端去更新操作;
4.异步创建订单
同上,创建订单也可以通过消息队列来异步创建;
总结
其实记住几个核心点就行:尽早的隔离无效数据,能用缓存的地方不要直接去查数据库,能用异步的地方不要去同步。
如何设计一个秒杀系统
说到秒杀系统,我们第一反应有可能是电商平台花样繁多的抽奖活动、12306的抢票系统等,的确这些都涉及到了秒杀概念。
秒杀系统具备哪些特点?
1、瞬时高并发,短时间内的流量洪峰,用户量的激增促使网站流量突破上限;
2、出现超卖现象,成功下单的人数比库存量还要多;
3、业务流程简单,没有过多花俏功能。
秒杀系统该如何设计?
基于上面提到的特点,秒杀系统需要做到以下几点:
1、前台静态资源走CDN加速
将JS、CSS、图片、音视频等文件放在CDN上采用预热形式将资源刷新到各CDN节点上,使得用户“就近读取”,加快访问速度,另外也减小源站服务器的压力。
2、限流
对用户请求做限制,同一时间段内同账号禁止发送大量请求。
3、任务异步化处理
比如下单、邮件通知、短信接收等,业务能作异步处理的一定要异步处理,避免同步阻塞。
4、合理的缓存
秒杀的商品数据多数都不需要实时更新(除库存等字段外),对于这类不需要实时更新的热点数据放在缓存里,避免从数据库中查询,可降低数据库的负载压力。
5、其它业务降级
任何一个平台的软硬件资源是有限的,所以我们可以将一些不重要的业务暂停服务,将资源让出来给秒杀系统使用。
下面我们来详细探讨一下接口层如何处理。
上图主要描述了后端接口在处理请求所做的操作:
1、操作缓存数据,缓存可以存放商品当前总量,如果Redis是分布式部署,可以采用分布式锁来解决脏数据问题。
2、将不需要及时响应的业务放入消息队列。
3、定时将缓存数据更新到数据库,为了避免脏数据产生可以采用悲观锁和乐观锁两种方式,个人比较推荐乐观锁方式。
4、消费消息队列消息,针对消息类别做不同的操作。
秒杀系统存在较多不确定性(如:请求数、并发数),所以秒杀系统也离不开监测系统对各项指标的监测,在发现异常时要做熔断处理,另外在资源不够时提交做好扩容准备。
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!12306的购票系统与淘宝“双十一”的秒杀系统相比谁更强大
我之前做过一些政府招标项目.
12306强大在很多相关限制,预算,投标资质在那里,你只能在红线附近采用对应的技术做文章.
而企业软件的红线大部分不犯法就行...
表面上12306只是一个项目,其实你要对接支付,支付又涉及税务等.还要打通全国各地的铁路信息.
某个站点票务信息并发量只有20,你12306搞个200线程过去,不给你搞垮啊.
就好比你跳高..你可以跳2米,要求你跳1.8米,1.7米以下都被淘汰.你可能1.78中标.
更多文章:

联想电脑管家电池养护模式不见了(联想笔记本能源之星里面的电池模式怎么没有了最佳电池保养模式)
2025年4月7日 23:42

华硕z490h gaming怎么样(华硕的z490吹雪主板咋样,硬件靠谱么,同价位还有啥可选的)
2025年3月22日 00:50

打印机维修收费标准(现在市场上维修打印机、电脑和考勤机的收费标准是多少,有没有哪有修齐心考勤机的)
2025年3月20日 16:01

联想笔记本y560p(新入Y560P联想笔记本电脑 自带软件问题和进程数太多问题)
2025年4月22日 00:54

戴尔e6520更换内存(戴尔latitude e6530怎么升级)
2025年3月26日 00:30

笔记本连接网络无internet(笔记本电脑连接网络显示无internet)
2025年4月2日 06:15

联想小新14怎么样下载软件(联想小新air14如何安装软件)
2025年3月21日 19:30