秒杀项目背景:

技术角度:高可用、高并发

市场角度:用户体验、曝光度、促销

值得注意的地方:

  • 脱离原站点部署!
  • 监控、监控、监控!

秒杀脱离服务器,鸡蛋放在一个篮子 蛋碎了就真的全碎了.....

关键点:

       高可用:双活

       高并发:负载均衡、安全过滤

设计思路:

  • 静态页面:cdn、网址隐藏、页面压缩、缓存机制
  • 动态页面:排队、异步、资质抢购

其他建议:

         百度的建议:opcode缓存、cdn、更大的服务器你示例

         阿里的建议:云监控、云盾、ess、oss、rds、cdn

 

架构、构思

认清当前的环境、形式:

  • 用户:超大量、正常/坏人
  • 地域:全国各地
  • 业务流程:【前台】商品展示、登记、【后台】数据接入、数据处理   处理计策:分流、cdn防御,做好安检

 

 

 

 

商品展示层

页面状态:

      商品展示-----秒杀倒计时页面

      秒杀进行中----点击进入秒杀页面

      秒杀活动结束----提示活动已经结束

流程图:

 

 案例图:

 

 开始前和活动中是通过Linux定时任务或shell脚本实现得

页面/服务器优化、cdn网络加速、隐藏跳转界面、状态切换

 

用户登记层

页面状态:

      秒杀进行中----秒杀登记页面

      秒杀结束了----秒杀结束页面

流程图:

 

 知识点

格外增加:token加密 解密、ajax跨域(jsonp)

 

 

 

数据接入层:

页面功能:

      数据检验----完成对数据/用户验证

      存入nosql队列-----去重复/排序数据

      检测商品最大数量----提示活动已经结束

流程图:

 

 知识点:数据校验、存入队列、商品数量检测

header("Access-Control-Allow-Origin:http://www.miaosha.net");//防止跨域

 

 

 

数据处理层:

页面功能

      数据持久化----转存nosql数据到mysql数据库

 

数据持久化

 

 

 

 

 

总结:初步认识,需要实现商品显示页面即倒计时页面、秒杀页面、秒杀结束页面。最主要问题是高并发、用户体验,可采用cdn加速、负载均衡、缓存处理等解决。实现技术需要借助服务器定时任务定时触发秒杀开始,写shell脚本计时触发秒杀结束,需要进行用户验证,数据传递验证,采用序列化或者tooken串验证,采用redis数据对列临时存储数据,进而再进行数据持久化处理存入数据库。