# 《Seckill秒杀系统》第3章:秒杀系统高并发大流量的应对之道
作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)
课程视频:https://t.zsxq.com/10JpBNO5K (opens new window)
沉淀,成长,突破,帮助他人,成就自我。
- 本章难度:★★★☆☆
- 本章重点:全面阐述建设秒杀系统挑战的应对之道,知己知彼,方案了然于胸,自然有应对之道。经过长期秒杀大促的沉淀与总结,针对秒杀系统存在高并发大流量的挑战,冰河沉淀出六种应对之道:分离、限流、快速响应、准确一致、稳定可靠、全链路压测。
- 课程视频:https://t.zsxq.com/10JpBNO5K (opens new window)
大家好,我是冰河~~
虽然建设秒杀系统的过程中存在着诸多的挑战,但是这些挑战都是有应对之道的,对于整个过程中遇到的难点和痛点,都是会沉淀出对应的解决方案。
# 一、前言
在前面的文章中,详细阐述了建设秒杀系统的目标与存在的挑战,并且简单罗列了如何应对这些挑战的方式。本章,就详细阐述对秒杀系统存在挑战的应对之道,最终构建出兼具高并发、高性能和高可用的秒杀系统。心中不仅了解建设秒杀系统存在的挑战,更清楚的知道这些挑战的应对之道,正所谓:知己知彼,百战不殆,方案了然于胸,自然有应对之法。
# 二、本章诉求
一般一套成熟并且稳定、经得起实际大促场景考验的秒杀系统,都是经过不断迭代、优化和演化而来的。对于设计和研发秒杀系统的技术人员来说,心中一定要清晰的知晓建设秒杀系统存在的挑战,以及针对这些挑战的应对之法。
# 三、应对之道
对于秒杀系统,站在技术人员的角度,相信大家多多少少对秒杀系统有所了解了。既然建设秒杀系统存在着种种的困难和挑战,那我们就需要从整体上分析这些挑战的应对之法,而不是在真正开发秒杀系统时,再去临时想方案,查漏补缺,切忌头痛医头、脚痛医脚。
从总体上说,我们应对秒杀系统挑战时,心中要有一杆秤,在设计秒杀系统时,一定要做到分离、削峰限流、快速响应、准确一致、稳定可靠、全链路压测。
接下来,就针对每种应对之道进行详细的阐述。
# 四、分离之道
分离之道中,重点在于一个“分”字,主要包括:前后端资源分离、接口分离,数据分离、业务分离、系统分离、流量分离。
# 4.1 资源分离
资源分离,主要指的是前后端的资源分离。目前,除了一些非常老旧的系统之外,一般在开发互联网项目过程中,都会采用前后端分离的架构模式,这也是比较普遍的做法。在秒杀系统中,将前端资源分离出来,部署时可以直接推送到CDN服务器,CDN服务器全国各地都有,用户在访问系统时,可以从就近的CDN服务器上拉取对应的资源,能够极大的增强系统的性能。
# 4.2 接口分离
接口分离包含两个方面:一个是秒杀接口与其他接口分离,一个是高频访问接口与低频访问接口分离。
对于秒杀系统的接口来说,在设计上一定要与其他的接口进行分离,不要让秒杀系统的接口与其他业务的接口互相关联引用,避免秒杀系统的瞬时高并发流量对其他接口造成影响。
就秒杀系统而言,并不是每个接口的访问频次都一样,一本情况下,商品详情页、结算页和秒杀下单接口的访问频次要远远大于支付接口的访问频次。在设计上一定要将这些接口进行区分隔离,对高频访问的接口进行单独的性能优化。
# 查看完整文章
加入冰河技术 (opens new window)知识星球,解锁完整技术文章与完整代码