秒杀是电子商务网站常见的一种营销手段:将少量的商品以极低的价格,在特定的时间点开始出售。秒杀对网站的推广有很多好处,也能给消费者带来利益,但是对网站技术却是极大的挑战:网站是为正常运营设计的,而秒杀活动带来的并发访问用户却是平时的百倍甚至上千倍。网站如果为秒杀时的高并发量进行设计部署,就需要比正常运营多得多的服务器,而这些服务器在绝大多数时候都是用不着的,梁飞惊人。所以网站的秒杀业务不能使用正常的网站业务流程,也不能和正常的网站交易业务公用服务器,必须设计部署专门的秒杀系统。

一、秒杀活动的技术挑战

  1. 对现有网站业务造成冲击
  2. 高并发下的应用个,数据库负载
  3. 突然增加的网络和服务器宽带
  4. 直接下单:秒杀时间一到,就立即下单,在此之前只能查看商品详情。

二、秒杀系统的应对策略

1. 秒杀系统独立部署

  为了防止秒杀活动的高并发量访问而拖垮整个网站,使整个网站不必面对蜂拥而来的用户访问,可将秒杀系统独立部署;也可以使用独立的域名,使其与网站完全隔离,即使秒杀系统崩溃了,也不会对网站造成任何的影响。

2. 秒杀商品页面页面静态化

  将商品描述、商品参数、成交记录和用户评价全部写入一个静态页面,用户请求不需要经过应用服务器的业务逻辑处理,也不需要访问数据库。所以秒杀商品服务不需要部署动态的Web服务器和数据库服务器。

3. 租借秒杀活动网络宽带

  因为秒杀新增的网络宽带,必须和运营商重新购买或者租借。为了减轻网站服务器的压力,需要将秒杀商品页面缓存在CDN,同样需要和CDN服务商临时租借新增的出口宽带。

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

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

三、秒杀系统架构设计

  秒杀系统是为了秒杀而设计的,用户注重的是如何快速刷新界面,并且在第一时间抢先进入秒杀界面秒杀成功,而商品详情评价等并不是用户最注重的,因此秒杀系统的界面应该设计的尽可能简单。

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

  解决办法:使用JavaScript脚本控制。在秒杀商品静态页面中加入一个JavaScript文件引用,该JavaScript文件中加入秒杀是否开始的标志和下单页面URL的随机数参数,当秒杀开始的时候生成一个新的JavaScript文件冰杯用户浏览器加赞,控制秒杀商品页面的展示。

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

  为了减轻下单页面服务器的敷在压力,可以控制进入下单页面的入口,只有少数用户能进入下单页面,其他用户直接进入秒杀结束的页面。如图:

参考自:《大型网站技术架构.核心原理与案例分析》

最近发现 心稍微一急 或者心里惦记个啥事儿,就头疼发烧…(做鬼脸的表情)say byebye…

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

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

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

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

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

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

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

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

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

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

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

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

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

  7. 第十二章 网购秒杀系统架构设计案例分析(待续)

    ······ 转载于:https://www.cnblogs.com/hzzjj/p/9825804.html

  8. 浅谈秒杀系统架构设计

    秒杀是电子商务网站常见的一种营销手段. 原则 不要整个系统宕机. 即使系统故障,也不要将错误数据展示出来. 尽量保持公平公正. 实现效果 秒杀开始前,抢购按钮为活动未开始. 秒杀开始时,抢购按钮可以点 ...

  9. 秒杀系统架构设计与分析

    秒杀系统架构分析与实战 2016-01-18陶邦仁Qunar技术沙龙 1 秒杀业务分析 正常电子商务流程 (1)查询商品:(2)创建订单:(3)扣减库存:(4)更新订单:(5)付款:(6)卖家发货 秒 ...

最新文章

  1. sizeof运算求结构体大小
  2. 关闭不安全端口的脚步
  3. C++:cin、cin.getline()、getline()的用法
  4. 【HibernateHibernate实体关系映射——双边的多对一、一对多关系
  5. Java并发性-任务反馈
  6. eclipse中项目内存溢出问题
  7. android edittext获取 time值,在Android EditText中实现日期时间选择器(DatePicker和TimePicker)...
  8. PAT 1059 Prime Factors[难]
  9. iOS中Storyboard使用要点记录
  10. 在xp系统如何把文件上传到ftp服务器,xp系统怎么上传到ftp服务器
  11. 常用字体名称中文对应英文
  12. 固态硬盘是什么接口_硬盘接口/SSD固态硬盘
  13. C语言基本的窗口开发
  14. 什么是SSR(服务器渲染)
  15. python sendkeys用法_sendkeys用法详解
  16. 我的爬虫 之 爬今日头条街拍图片
  17. 免费开源的几款Web服务器软件简介
  18. Unity 鼠标拖动UI
  19. 适量饮酒,对身体好?医生说:恰恰相反!
  20. [评论送书]html+css+js制作旋转爱心

热门文章

  1. 如何利用J-Link烧写进行程序烧写
  2. vc++学生学籍管理系统
  3. 19年腾讯、阿里、网易等各大厂实习生薪资曝光!
  4. 计算机和网络技术的主要应用,计算机网络技术的应用及发展
  5. python 石头剪刀布小游戏
  6. iOS - GATT Profile 简介
  7. k2p一直亮红灯搜不到信号_关于投屏搜索不到电视,分析思路
  8. google desktop
  9. QT配置winpcap
  10. 使用数据泵从Oracle11g导出数据到Oracle12c导入