淘宝商品秒杀的架构在设计过程中需要考虑到哪些问题?

淘宝商品秒杀的架构在设计过程中需要考虑到哪些问题?,第1张

大家都知道,只要我们讨论到电商平台,那自然少不了商品秒杀的话题,而且如果去电商类互联网公司面试,那面试官肯定也会问你如何实现商品秒杀系统的架构设计。可能有很多人不屑一顾,商品再怎么秒杀,不就是一群人抢数量有限的商品吗?有什么难的?

其实我要说的是,对于小型电商平台而言实现商品秒杀感觉的确很简单,但对于像淘宝这类的电商巨头平台而言,商品秒杀系统的设计真的很不简单,要考虑的事项太多。

秒杀系统的本质及常见问题

所谓商品秒杀,说得通俗点就是一大群人在短时间内去抢购为数不多的商品。听上去很简单,但是对于流量较大的电商平台而言,商品秒杀系统如果设计得不好,会出很大问题的,比如:

1、对网站现有业务会造成冲击

秒杀活动是一种营销手段,这会导致在某一刻会吸引很多人来抢购,并发量过大会对现有业务造成冲击,甚至可能导致网站瘫痪。所以像之前的小米发布新品,很多人连登录都登录不上就是这个原因。

2、服务器带宽洪峰

商品秒杀页一般都会设计得比较个性,所以资源也较多,在高并发场景下会导致服务器流量突增,所以要考虑服务器的带宽是否足够。

3、服务器及数据库负载过高

相信大家都参加过秒杀活动,回顾一下,我们是不是在秒杀活动开始前习惯性的一直刷新页面很多用户都是这样,一直刷新页面,这样就变相的增加服务器及数据库的负载。

4、防止机器提交下单请求

这一点尤为重要,就像一些刷票软件一样,有人为了能秒杀到商品会利用机器进行秒杀,机器发出的请求比人为发出请求总是要快一步的。

5、成功秒杀了,但商品数量却不够

如果是这种情况,那估计就会受到投诉了,明明提示我秒杀成功了,但商品数量却显示0,这种逻辑错误不能犯。

秒杀系统该如何设计?

其实秒杀系统的核心问题是全局性和原子性 *** 作,另外还要考虑到高并发带来的冲击。结合我的开发经验,给出一些设计方案供大家参考:

1、秒杀系统设计的思路

一定要用到队列(可以理解为“排队”机制),当秒杀活动开始后,所有的请求往这个队列里放,另外这个队列长度是有限制的(队列长度就是商品数量),当队列数达到后,活动页面就提示活动结束,然后队列里的请求再去进行下一步处理。

2、秒杀系统独立部署

为避免秒杀活动给现有业务带来冲击,我们建议秒杀系统单独部署(独立域名+服务器)这样即使秒杀系统瘫痪了也不会影响现有电商业务的运行。

3、活动页静态化+CDN加速

为减小系统负载、加快页面打开速度,我们建议活动页面要静态化处理(这样比动态页面性能要好),再走CDN加速,这样能保证多数用户访问活动页的速度都是很快的,不会卡顿。

4、下单页URL动态生成

为防止机器下单和提前下单,下单页的URL要动态生成,不能固定不变的。

5、服务降级

在双11期间,我们会发现淘宝及支付宝很多不重要的功能都是禁用的,这就是服务降级。服务降级是指停止一些不重要的服务,将资源让给秒杀系统,以提高其负载能力。

以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流~我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13339699.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-17
下一篇 2023-07-17

发表评论

登录后才能评论

评论列表(0条)

保存