秒杀活动的技术挑战

### 对现有网站业务造成冲击 ###
秒杀活动只是网站营销的一个附加活动,特点是:时间短、并发访问量大,如果和网站原有应用部署在一起,必然会对现有业务造成冲击。
解决方案:将秒杀系统独立部署,甚至使用独立域名,使其与网站完全隔离。

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

用户在秒杀开始前,通过不停刷新浏览器页面以保证不会错过秒杀,这些请求如果按照一般的网站应用架构,访问应用服务器、连接数据库,会对应用服务器和数据库服务器造成负载压力。
解决方案:重新设计秒杀商品页面,不使用网站原来的商品详细页面,页面内容静态化,用户请求不需要经过应用服务器的业务逻辑处理,也不需要访问数据库。所以秒杀商品服务不需要部署动态的Web服务器和数据库服务器。

突然增加的网络及服务器带宽

假设商品页面大小200K,10000个请求的带宽就是2G。
解决方案:因为秒杀新增的网络带宽,必须和运营商重新购买或者租借。为了减轻网站服务器的压力,需要将秒杀商品页面缓存在CDN,同样需要和CDN服务商临时租借新增的出口带宽。

直接下单

秒杀的游戏规则是到了秒杀才能开始对商品下单购买,在此时间点之前,只能浏览商品信息,不能下单。而下单页面也是一个普通的URL,如果得到这个URL,不用等到秒杀开始就可以下单了。
解决方案:为了避免用户直接访问下单页面URL,需要将改URL动态化,即使秒杀系统的开发者也无法在秒杀开始前访问下单页面的URL。办法是在下单页面URL加入由服务器端生成的随机数作为参数,在秒杀开始的时候才能得到。

如何控制秒杀商品页面购买按钮的点亮

购买按钮只有在活动开始的时候才能点亮,在此之前是灰色的。如果是动态页面,可以很容易解决这个问题,但为了减轻服务器负载压力,该页面设计为静态页面,缓存在CDN、反向代理服务器上,甚至用户浏览器上。秒杀开始时,用户刷新页面,请求根本不会到达应用服务器。
解决方案:使用JavaScript脚本控制,在秒杀商品静态页面中加入一个JavaScript文件引用,该JavaScript文件中加入秒杀是否开始开始的标志和下单页面URL的随机参数,当秒杀开始的时候生成一个新的JavaScript文件并被用户浏览器加载,控制秒杀商品页面的展示。这个JavaScript文件使用随机版本号,并且不被浏览器、CDN和反向代理服务器缓存。

如何只允许第一个提交的订单被发送到订单子系统

秒杀开始,由于最终能够成功秒杀到商品的用户只有一个,因此需要在用户提交订单时,检查是否已经有订单提交。
解决方案:为了减轻下单页面服务器的负载压力,可以控制进入下单页面的入口,只有少数用户能进入下单页面,其他用户直接返回秒杀结束页面。

下单服务器检查本机已处理的下单请求数目
*如果超过10条,直接返回已结束页面给用户;
*如果未超过10条,则用户可进入填写订单及确认页面;
检查全局已提交订单数目
*已超过秒杀商品总数,返回已结束页面给用户;
*未超过秒杀商品总数,提交到子订单系统。

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

摘自《大型网站技术架构》–李智慧

网购秒杀系统架构设计分析相关推荐

  1. 系统架构设计——网购秒杀系统架构设计

    网购秒杀系统架构设计 秒杀是电子商务网站常见的一种营销手段:将少量商品(通常只有一件)以极低的价格,在特定的时间点开始出售.比如一元钱的手机,五元钱的电脑,十元钱的汽车等.因为商品价格诱人,而且数量有 ...

  2. 网购秒杀系统架构设计案例分析

    大型网站技术架构-核心原理与案例分析 作者:李智慧 申明:文章版权归作者所有,若有侵权,请联系删除 秒杀是电子商务网站常见的一种营销手段:将少量商品(通常只有一件)以极低的价格,在特定的时间点开始出售 ...

  3. 网购秒杀系统架构设计

      秒杀是电子商务网站常见的一种营销手段:将少量的商品以极低的价格,在特定的时间点开始出售.秒杀对网站的推广有很多好处,也能给消费者带来利益,但是对网站技术却是极大的挑战:网站是为正常运营设计的,而秒 ...

  4. 网购秒杀系统架构设计案例分析——《大型网站技术架构》笔记

    一.核心思想: 网站秒杀时的并发比正常运营时多的多,所以网站的秒杀业务不能使用正常的网站业务流程,也不能和正常的网站交易业务共用服务器(否则造成巨大浪费),必须设计部署专门的秒杀系统,进行专门应对 二 ...

  5. 案例3:网购秒杀系统架构设计案例

    秒杀系统应对策略: 1.秒杀系统独立部署 2.秒杀商品页面静态化 3.租借秒杀活动网络带宽 4.动态生成随机下单页面URL 秒杀系统架构设计 1.秒杀系统页面设计尽可能简单 2.购买按钮只有活动开始时 ...

  6. 网购秒杀系统架构设计 1

    本文是「大型网站技术架构 - 核心原理与案例分析」 第 12 章的学习笔记,感兴趣的朋友可以去购买 目录: 秒杀活动的技术挑战 秒杀活动的应对策略 秒杀系统架构设计 一.秒杀活动的技术挑战 场景: 某 ...

  7. 【20210827】【系统设计】“秒杀系统”架构设计分析

    时间:2021年08月27日 作者:小蒋聊技术 大家好,欢迎来到小蒋聊技术.小蒋准备和大家一起聊聊技术的那些事. 在互联网高速发展的今天,大家已经习惯了一个又一个的便捷互联网服务在改变着我们的生活.出 ...

  8. 【架构设计】————12、网购秒杀系统架构设计案例分析

    12.1 秒杀活动的技术挑战 12.2. 秒杀系统的应对策略 参见:<网站设计架构:核心原理与案例分析>

  9. 网购秒杀系统架构案例分析

    秒杀活动的技术挑战 对现有网站业务造成冲击 高并发下的应用数据库负载 突然增加的网络及服务带宽 直接下单 秒杀系统的应对策略 秒杀系统独立部署 秒杀商品页面静态化 租赁秒杀活动网络带宽 动态生成随机下 ...

最新文章

  1. 从ramdisk根文件系统启动Linux
  2. 缓存击穿问题解决思路
  3. 2020-12-11 keras通过model.fit_generator训练模型(节省内存)
  4. 请验证实例名称是否正确并且 sql server 已配置为允许远程连接_安装MySQL后,需要调整的10个性能配置项...
  5. liunx 命令手册 (chm)
  6. Entity Framework 实践系列 —— 搞好关系 - 两情相悦(双向一对一)
  7. 如何在双显示器设置中将 Mac Dock 保持在一个屏幕上?
  8. HDU 5608 function(莫比乌斯反演 + 杜教筛)题解
  9. 1gb.ru php,美国免费空间0fees.net月流量10GB和50Webs空间500MB可绑域名_免费静态空间 | 微站中国|MicroHost...
  10. 工程项目成本费用明细表_这么简单?成本费用明细表这么填就对了
  11. 计算机教室消防说明,6.7 消防专用电话的设置
  12. 未能解决并且期待解决的第二个诡异事件----HashMap相关方法
  13. MTK 9.0平台调试gsensor
  14. 使用定时任务向百度推送网站URL
  15. pycharm所有版本 http://www.jetbrains.com/pycharm/download/previous.html 打开激活窗口 选择 Activate new license
  16. Windwos注册表案例(友尽百科)
  17. burntest Linux参数,限拷机软件IntelBurnTest 2.0
  18. 【知识兔】Excel教程之隔行/隔列求和
  19. 录屏软件哪个好?电脑录屏软件排行榜推荐
  20. 《C语言程序设计》课程总结报告

热门文章

  1. 贵州大数据组建专家团
  2. @Import注解详解
  3. 次世代建模:次世代角色制作质量规范,赶紧收藏!
  4. [Growth]写一写全员上岸研究生的我的大学宿舍
  5. 对称加密算法(AES加密)以及对称算法与非对称算法的对比
  6. 【苹果家庭推位置推送】软件安装许子fkapple就相当于遵守了eatable协议
  7. 三国战记服务器维护要多久,《三国战纪》新手开荒1至60级快速升级心得
  8. VS2013配置Boost.Asio环境
  9. 1.echarts中提示框 series中的pictorialBar的backgroundColor设置图片时不起作用?
  10. MFC Windows 程序设计[二十五]之五彩十六宫格(附源码)