网购秒杀系统的设计

JAVA herman 1723浏览 0评论
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog,发送下载链接帮助你免费下载!
本博客日IP超过1800,PV 2600 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog,之前的微信号好友位已满,备注:返现
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领

最近各大电商网站不断的推出各类秒杀活动,让人应接不暇,作为一个IT程序员我们关注的是,如果让你去设计一个秒杀系统,你会怎么做?

一. 秒杀活动带来的挑战:

  • 对现有网站构成冲击

秒杀活动为一个网站营销的附加活动,这个活动具有时间短,并发访问量大的特点,如果和原有应用系统部署在一起,有可能会使整个网站瘫痪。

  • 高并发下应用服务器,数据库服务器的负载 

用户在秒杀开始前,会不断刷新浏览器页面以保证不会错过秒杀,这些请求如果按照一般网站应用架构,访问应用服务器、连接数据库,会对应用服务器和数据库服务器造成极大的负载压力。

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

假设商品页面大小200K(图片大小、CSS、JS),有1W人同时参加活动,那么需要的网络和服务器带宽是2G(200 * 10000), 这些网络带宽是因为秒杀活动新增的,超过网站平时使用的带宽。

  • 防止直接下单

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

二. 秒杀活动应对策略:

  • 秒杀系统独立部署

为了避免因为秒杀活动的高并发访问而拖垮整个网站,可将秒杀系统独立部署,使其与网站分离,即使秒杀系统崩溃了,也不会对生产环境造成影响。

  • 秒杀商品页面静态化

将秒杀商品页面设计成静态页面,这样用户的请求不需要经过应用服务器的业务逻辑处理,也不需要访问数据库

  • 租借秒杀活动网络带宽

向运营商临时租借较大带宽,为了减轻网站服务器的压力,需要将秒杀商品页面缓存在CDN
CDN的基本原理是广泛采用各种缓存服务器,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求

  • 动态生成随机下单页面URL

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加QQ1群:135430763(2000人群已满),QQ2群:454796847(已满),QQ3群:187424846(已满)。QQ群进群密码:xttblog,想加微信群的朋友,之前的微信号好友已满,请加博主新的微信号:xttblog,备注:“xttblog”,添加博主微信拉你进群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作可添加助理微信进行沟通!

本文原文出处:业余草: » 网购秒杀系统的设计