最近各大电商网站不断的推出各类秒杀活动,让人应接不暇,作为一个IT程序员我们关注的是,如果让你去设计一个秒杀系统,你会怎么做? 一. 秒杀活动带来的挑战: 1. 对现有网站构成冲击 秒杀活动为一个网站营销的附加活动,这个活动具有时间短,并发访问量大的特点,如果和原有应用系统部署在一起,有可能会使整个网站瘫痪。 2. 高并发下应用服务器,数据库服务器的负载 用户在秒杀开始前,会不断刷新浏览器页面以保证不会错过秒杀,这些请求如果按照一般网站应用架构,访问应用服务器、连接数据库,会对应用服务器和数据库服务器造成极大的负载压力。 3. 突然增大的网络及服务器带宽 假设商品页面大小200K(图片大小、CSS、JS),有1W人同时参加活动,那么需要的网络和服务器带宽是2G(200 * 10000), 这些网络带宽是因为秒杀活动新增的,超过网站平时使用的带宽。 4. 防止直接下单 秒杀的游戏规则是到了秒杀时间才能开始对商品下单购买,在此时间点之前,只能浏览商品信息,不能下单。而下单页面也只是一个普通的URL,如果得到这个URL,不要等到秒杀开始就可以下单了,这显然不行。 二. 秒杀活动应对策略: 1. 秒杀系统独立部署 为了避免因为秒杀活动的高并发访问而拖垮整个网站,可将秒杀系统独立部署,使其与网站分离,即使秒杀系统崩溃了,也不会对生产环境造成影响。 2. 秒杀商品页面静态化 将秒杀商品页面设计成静态页面,这样用户的请求不需要经过应用服务器的业务逻辑处理,也不需要访问数据库 3. 租借秒杀活动网络带宽 向运营商临时租借较大带宽,为了减轻网站服务器的压力,需要将秒杀商品页面缓存在CDN CDN的基本原理是广泛采用各种缓存服务器,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求 4. 动态生成随机下单页面URL |