大家都知道,只要我们讨论到电商平台,那自然少不了商品秒杀的话题,而且如果去电商类互联网公司面试,那面试官肯定也会问你如何实现商品秒杀系统的架构设计。可能有很多人不屑一顾,商品再怎么秒杀,不就是一群人抢数量有限的商品吗秒杀活动有什么注意事项?有什么难的?
其实我要说的是,对于小型电商平台而言实现商品秒杀感觉的确很简单,但对于像淘宝这类的电商巨头平台而言,商品秒杀系统的设计真的很不简单,要考虑的事项太多。
秒杀系统的本质及常见问题所谓商品秒杀,说得通俗点就是一大群人在短时间内去抢购为数不多的商品。听上去很简单,但是对于流量较大的电商平台而言,商品秒杀系统如果设计得不好,会出很大问题的,比如:
1、对网站现有业务会造成冲击
秒杀活动是一种营销手段,这会导致在某一刻会吸引很多人来抢购,并发量过大会对现有业务造成冲击,甚至可能导致网站瘫痪。所以像之前的小米发布新品,很多人连登录都登录不上就是这个原因。
2、服务器带宽洪峰
商品秒杀页一般都会设计得比较个性,所以图片资源也较多,在高并发场景下会导致服务器流量突增,所以要考虑服务器的带宽是否足够。
3、服务器及数据库负载过高
相信大家都参加过秒杀活动,回顾一下,我们是不是在秒杀活动开始前习惯性的一直刷新页面??很多用户都是这样,一直刷新页面,这样就变相的增加服务器及数据库的负载。
4、防止机器提交下单请求
这一点尤为重要,就像一些刷票软件一样,有人为了能秒杀到商品会利用机器进行秒杀,机器发出的请求比人为发出请求总是要快一步的。
5、成功秒杀了,但商品数量却不够
如果是这种情况,那估计就会受到投诉了,明明提示我秒杀成功了,但商品数量却显示0,这种逻辑错误不能犯。
秒杀系统该如何设计?其实秒杀系统的核心问题是全局性和原子性操作,另外还要考虑到高并发带来的冲击。结合我的开发经验,给出一些设计方案供大家参考:
1、秒杀系统设计的思路
一定要用到队列(可以理解为“排队”机制),当秒杀活动开始后,所有的请求往这个队列里放,另外这个队列长度是有限制的(队列长度就是商品数量),当队列数达到后,活动页面就提示活动结束,然后队列里的请求再去进行下一步处理。
2、秒杀系统独立部署
为避免秒杀活动给现有业务带来冲击,我们建议秒杀系统单独部署(独立域名+服务器)这样即使秒杀系统瘫痪了也不会影响现有电商业务的运行。
3、活动页静态化 + CDN加速
为减小系统负载、加快页面打开速度,我们建议活动页面要静态化处理(这样比动态页面性能要好),再走CDN加速,这样能保证多数用户访问活动页的速度都是很快的,不会卡顿。
4、下单页URL动态生成
为防止机器下单和提前下单,下单页的URL要动态生成,不能固定不变的。
5、服务降级
在双11期间,我们会发现淘宝及支付宝很多不重要的功能都是禁用的,这就是服务降级。服务降级是指停止一些不重要的服务,将资源让给秒杀系统,以提高其负载能力。
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!
看过本文的人还看过
- 未来最吃香的行业是什么,未来十年,男生最吃香的行业有什么
- 舒畅直播带货太离谱,黄金卖两位数,品牌口红卖9元,被疑卖假货,45了,把上海730万的房子卖了回四线老家过完后半生,行吗?
- 抖音小店好不好做?抖音小店怎么上架自己的商品,抖音小店如何选品?现在做抖音小店还靠谱吗?
- 《三国志14:威力加强版》全球销量突破50万套,《三国志14》能否超过《三国志11》?
- 采访国家自然科学奖中国香港得奖者于君:做科学研究如同循环往复地攀爬高山
- 证券日报头版评论:辩证看待A股持续万亿元成交现象,A股本轮行情能突破5178点吗?
- 如何正确使用吸奶器,宝宝不吸奶头用吸奶器吸出来外出怎么喂呀
- 使徒行者2谁才是黑镜,你觉得电影《使徒行者2》怎么样,有何亮点和不足
- 在家做什么手工活比较挣钱,有什么靠谱的,在家里就能做的工作吗?
- 额济纳旗“灭火”镇长:不可以靠报表学习情况,不可以把的时间耗在大会上