词条信息

admin
admin
超级管理员
最近编辑者 发短消息   

相关词条

热门词条

更多>>
什么是端口?到底是做什么的呢?
端口一般指两种,一种是硬件比如路由器或者交换机的插网线的端口,一种是软件的逻辑的概念,比如http的80端口!...
7种进阶方法让你快速测试端口连通性
Ping是Windows、Linux和Unix系统下的一个检查网络连通性的命令工具,对于大部分互联网用户来说很...
电脑开机,总需要按F1,是什么原因造成的?
一.主板掉电这个说法是行业内的叫法了,一般是主板的CMOS电池没电了导致的。也是最常见的一种提示你按F1的提示...
社保降费对个人有什么影响?
下调城镇职工基本养老保险单位缴费比例是政府给企业发的一个大红包,特别是对于企业来说是一个利好,但是对个人来说有...
车辆“出险”对下年保费的影响,到底有多大?
【出险对交强险的影响】【出险对商业险的影响】车辆“出险”对下年保费的影响,到底有多大?这里有必要先提下车险第三...

精选图集

更多>>
简易百科旧版 >>所属分类 >> 程序开发    数据结构   

阿里双十一秒杀系统架构设计关键点

标签: 阿里巴巴 双十一 秒杀 系统架构设计 关键点

顶[0] 发表评论(0) 编辑词条

话说马上要到双11了,就来谈谈如何设计一个秒杀系统架构?


阿里双十一秒杀系统架构设计关键点-解决网?


目录

技术挑战编辑本段回目录


1. 对原有业务形成冲击

秒杀活动只是网站营销的一个附加活动,特点是:时间短、并发访问量大,如果和网站原有应用部署在一起,必然会对现有业务造成冲击。


解决方案:将秒杀系统独立部署,甚至使用独立域名,使其与网站完全隔离。


2. 高并发下数据库、应用负载

用户在秒杀开始前,通过不停刷新浏览器页面以保证不会错过秒杀,这些请求如果按照一般的网站应用架构,访问

应用服务器、连接数据库,

会对应用服务器和数据库服务器造成负载压力。


解决方案:重新设计秒杀商品页面,不使用网站原来的商品详细页面,页面内容静态化,用户请求不需要经过


应用服务编辑本段回目录


3. 突然增大的服务器和网络带宽

假设商品页面大小200K,10000个请求的带宽就是2G。


解决方案:因为秒杀新增的网络带宽,必须和运营商重新购买或者租借。为了减轻网站服务器的压力,需要将秒杀商品页面缓存到CDN


4. 防止秒杀前下单

秒杀的游戏规则是到了秒杀才能开始对商品下单购买,在此时间点之前,只能浏览商品信息,不能下单。而下单页面也是一个普通的URL,如果得到这个URL,不用等到秒杀开始就可以下单了。


解决方案:为了避免用户直接访问下单页面URL,需要将改URL动态化,即使秒杀系统的开发者也无法在秒杀开始前访问下单页面的URL。办法是在下单页面URL加入由服务器端生成的随机数作为参数,在秒杀开始的时候才能得到。


应对策略编辑本段回目录


1. 独立部署

和原有业务部署在不同服务器,防止高并发拖垮整个网站


2. 页面静态化

将商品详情、描述静态化到页面


3. 租借秒杀网络带宽

向运营商租借带宽


4. 动态生成随机下单页面URL

无法在秒杀前访问下单页面的URL:加入服务器端生成的随机数作为参数,在秒杀开始前才能得到


架构设计编辑本段回目录


1. 控制秒杀购买页面的点亮


购买按钮只有在活动开始的时候才能点亮,在此之前是灰色的。如果是动态页面,可以很容易解决这个问题,但为了减轻服务器端负载压力,


更好的利用CDN、反向代理等性能优化手段,


该页面被设计为静态页面,缓存在CDN、反向代理服务器上,甚至用户浏览器上。秒杀开始时,用户刷新页面,请求根本不会到达应用服务器。


解决方案:秒杀商品页面加入一个javascript引用,该javascript中加入秒杀是否开始的标志和下单页面URL的随机数参数,该javascript使用随机版本号,不可被浏览器缓存。


当秒杀开始时,生成一个新的javascript文件并被用户浏览器加载。


阿里双十一秒杀系统架构设计关键点-解决网?


2. 允许第一个订单提交


秒杀开始,由于最终能够成功秒杀到商品的用户只有一个,因此需要在用户提交订单时,检查是否已经有订单提交。


解决方案:为了减轻下单页面服务器的负载压力,可以控制进入下单页面入口,只有先提交的少数用户可进入,后边的用户直接进入秒杀结束页面。


阿里双十一秒杀系统架构设计关键点-解决网?

阿里双十一秒杀系统架构设计关键点-解决网?


下单服务器检查本机已处理的下单请求数目

*如果超过10条,直接返回已结束页面给用户;

*如果未超过10条,则用户可进入填写订单及确认页面;


检查全局已提交订单数目

*已超过秒杀商品总数,返回已结束页面给用户;

*未超过秒杀商品总数,提交到子订单系统。

这样就大大地减少了数据库的负载压力。

 

 

附件列表


按字母顺序浏览:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

→我们致力于为广大网民解决所遇到的各种电脑技术问题
 如果您认为本词条还有待完善,请 编辑词条

上一篇如何搭建一套数据分析平台
下一篇如何让css优先级调用

0
1. 本站部分内容来自互联网,如有任何版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
2. 本站内容仅供参考,如果您需要解决具体问题,建议您咨询相关领域专业人士。
3. 如果您没有找到需要的百科词条,您可以到百科问答提问或创建词条,等待高手解答。

关于本词条的提问

查看全部/我要提问>>