秒杀活动的技术挑战

作者:李智慧
链接:https://www.zhihu.com/question/20496392/answer/17272255
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

1. 秒杀活动的技术挑战
假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有:
对现有网站业务造成冲击
秒杀活动只是网站营销的一个附加活动,这个活动具有时间短,并发访问量大的特点,如果和网站原有应用部署在一起,必然会对现有业务造成冲击,稍有不慎可能导致整个网站瘫痪。
高并发下的应用、数据库负载
用户在秒杀开始前,通过不停的刷新浏览器页面以保证不会错过秒杀,这些请求如果按照一般的网站应用架构,访问应用服务器、连接数据库,会对应用服务器、数据库服务器造成极大的负载压力。
突然增加的网络及服务器带宽
假设商品页面大小200K(主要是商品图片大小),那么需要的网络和服务器带宽是2G(200K×10,000),这些网络带宽是因为秒杀活动新增的,超过网站平时使用的带宽。
直接下单
秒杀的游戏规则是到了秒杀时间才能开始对商品下单购买,在此时间点之前,只能浏览商品信息,不能下单。而下单页面也是一个普通的URL,如果得到这个URL,不用等到秒杀开始就可以下单了。

2. 秒杀系统的应对策略
为了应对上述挑战,秒杀系统的策略有:
秒杀系统独立部署
为了避免因为秒杀活动的高并发访问而拖垮整个网站,使整个网站不必面对蜂拥而来的用户访问,将秒杀系统独立部署,如果需要,还可以使用独立的域名,以和网站完全隔离,即使秒杀系统崩溃了,也不会对网站造成任何影响。
秒杀商品页面静态化
秒杀商品页面重新设计,不使用网站原来的商品详情页面,页面内容静态化:商品描述,商品参数,成交记录,用户评价全部写入一个静态页面,用户请求不需要经过应用服务器的业务逻辑处理,也不需要访问数据库。所以秒杀商品服务不需要部署动态的Web服务器、数据库服务器。
租借秒杀活动网络带宽
对于因为秒杀新增的网络带宽,必须和运营商重新购买或者租借。为了减轻网站服务器的压力,需要将秒杀商品页面缓存在CDN,同样需要和CDN服务商临时租借新增的出口带宽。
动态生成随机下单页面URL
为了避免用户直接访问下单页面URL,需要将该URL动态化,即使秒杀系统的开发者也无法在秒杀开始前访问下单页面的URL。办法是在下单页面URL加入由服务器端生成的随机数作为参数,在秒杀开始的时候才能得到。

原文地址:https://www.cnblogs.com/java-ssl-xy/p/8459609.html

时间: 2024-08-30 11:00:20

秒杀活动的技术挑战的相关文章

转:鏖战双十一-阿里直播平台面临的技术挑战(webSocket, 敏感词过滤等很不错)

转自:http://www.infoq.com/cn/articles/alibaba-broadcast-platform-technology-challenges 鏖战双十一-阿里直播平台面临的技术挑战 作者 陈康贤 发布于 2016年1月28日 | 2 讨论 分享到:微博微信FacebookTwitter有道云笔记邮件分享 稍后阅读 我的阅读清单 前言:一直以来双十一都是以交易为重心,今年当然也是如此,但是这并不妨碍万能的淘宝将双十一打造的让用户更欢乐.体验更丰富.玩法更多样.内容更有趣

【总结】瞬时高并发(秒杀/活动)Redis方案(转)

转载地址:http://bradyzhu.iteye.com/blog/2270698 1,Redis 丰富的数据结构(Data Structures) 字符串(String) Redis字符串能包含任意类型的数据 一个字符串类型的值最多能存储512M字节的内容 利用INCR命令簇(INCR, DECR, INCRBY)来把字符串当作原子计数器使用 使用APPEND命令在字符串后添加内容 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序 你可以添加一个元素到列表的头部(左边:

【公告】关于“天天秒杀”活动时间调整

自2017年1月中旬上线以来,天天秒杀活动得到了广大新老学员的热烈支持,在此感谢大家对51CTO学院的包容与厚爱! 下载"51CTO学院"APP,随时随地秒课>>> 这一年中,我们也在持续优化秒杀体验:从最初仅限在APP中参与,到现在网页端也同步进行:同时严格把控秒杀课程的质量,优选新课加入,旨在让学员用最合算的价格学到最超值的课程! 18年,我们希望天天秒杀能有一番新气象,给大家带来更加新鲜而火热的感觉!所以-重点就是: 每场秒杀持续时间从2小时改为1小时,这样才有

商城秒杀活动要点

商城秒杀的特性: 1.定时秒杀.即商品在秒杀时间点之前是不能进行购买下单.业务较简单. 2.秒杀前用户会频繁刷新秒杀页面. 3.秒杀持续时间短.瞬时访问流量高. 4.同一用户/IP禁止秒杀多次. 秒杀系统设计要点: 1.将秒杀系统独立部署,甚至使用独立域名,使其与原有网站完全隔离.主要防止秒杀对现有网站业务造成冲击. 2.页面静态化:将活动页面上的所有可以静态的元素全部静态化,并尽量减少动态元素.通过CDN来抗峰值. 3.禁止重复提交:用户提交之后按钮置灰,禁止重复提交 用户限流:在某一时间段内

以网游服务端的网络接入层设计为例,理解实时通信的技术挑战

本文参考并引用了部分腾讯游戏学院的相关技术文章内容,感谢原作者的分享. 1.前言 以现在主流的即时通讯应用形态来讲,一个完整的即时通讯IM应用其实是即时通信(英文简写:IM=Instant messaging)和实时通信(英文简写:RTC=Real-time communication)2种技术组合在一起的一整套网络通信系统.之所以以IM这个简写代称整个即时通讯软件,其实是历史原因了(因为早期的诸如ICQ这样的即时通讯工具,也就是文字聊天,并没有加入实时音视频这样的实时通信技术),对这个话题有兴

【AI】【计算机】【中国人工智能学会通讯】【学会通讯2019年第01期】直面五大技术挑战 推动人工智能突破性发展

封面: 直面五大技术挑战 推动人工智能突破性发展 原作者: 芮 勇 去年,我在<中国人工智能学会通讯>上发表的一篇文章中提到,人工智能遇到了发展的“芳华年代”.技术的突破,资本的支持,政策的扶持,产业的需求,这一切都让人工智能迎来了大发展的时代.2018 年已经过去了,回望 2018 的人工智能发展,可以看到,与 2017 年相比,大家对人工智能多了一些冷静和理性,少了很多浮躁和喧嚣.一方面,人工智能技术一直在向前推进:另一方面,智能 +,即人工智能与垂直行业的结合也越来越紧密,正在更加深刻地

秒杀活动java怎么实现

秒杀与其他业务最大的区别在于:秒杀的瞬间: (1)系统的并发量会非常的大 (2)并发量大的同时,网络的流量也会瞬间变大. 一个秒杀或者抢购页面,通常分为2个部分,一个是静态的HTML等内容,另一个就是参与秒杀的Web后台请求接口. 第一种处理:某个商品可秒杀的数量是10,那么在秒杀活动开始之前,把商品的ID和数量加载到缓存,比如:Redis.服务端收到请求的时候,首先减一下Redis里面的数量,如果数量减到0随后的访问直接返回秒杀失败.也就是说,只有10个请求最终会去实际的请求DB. 第二种处理

ModSecurity SQL注入攻击 – 深度绕过技术挑战

ModSecurity是一个入侵探测与阻止的引擎,它主要是用于Web应用程序所以也可以叫做Web应用程序防火墙.它可以作为Apache Web服务器的一个模块或单独的应用程序来运行.ModSecurity的目的是为增强Web应用程序的安全性和保护Web应用程序避免遭受来自已知与未知的攻击.本文主要介绍了针对开源WAF的一次渗透测试比赛中的思路. 1. 文章背景 ModSecurity SQL Injection Challenge(ModSecurity发起的一个针对开源WAF的一次渗透测试比赛

双十一活动开发技术总结

问题一:返现卷读接口展示品牌与接口的二级联动效果,并能跳转到相应的商城页 下面是读取商城接口返回的json数据格式,以及相关字段说明 [{ "id": 274, //跳转到商城的优惠Id "serialGroupgName": "奥迪Q3", //车系名称 "title": "多项优惠类型小活动", "manufacturerId": 1, //品牌Id "serialGrou