一、秒杀业务特性:
1、低廉价格;
2、大幅推广;
3、瞬间售空;
4、一般是定时上架;
5、时间短、瞬时并发量高;
二、秒杀实现技术挑战:
1、秒杀技术挑战
假设某网站秒杀活动只推出一件商品,预计会吸引上万人参加活动,也就是说最大并发请求数会是上万,,秒杀系统要面临的是上万的并发量;
2、秒杀活动只是网站营销的一个附加活动,这个活动具有时间短,并发访问量大的特点,如果和网站原有应用部署在一起,势必会对现有系统造成冲击,稍有不慎就有可到导致整个网站瘫痪;(所以要单独部署,避免影响到其他的服务)
三、秒杀的技术实现:
1、前端
a、使用动静分离、将静态资源存放到第三方文件服务器中实现cdn加速,目的减轻秒杀抢购带宽;
b、当用户点击秒杀按钮的时候,应该将按钮disabled 防止重复提交;
c、使用复杂的图形验证码防止机器模拟抢购;
d、秒杀商品的详情页使用 nginx + lua + openrestry实现静态化页面;
2、网关
a、ratelimter 、Nginx、hystrix 、redis实现限流,令牌桶 + 漏桶算法,对用户秒杀请求实现限流和服务保护;
b、用户黑名单 和 白名单拦截;
3、后端
a、服务降级、隔离、熔断;
b、从redis中获取秒杀的令牌(能够获取到令牌就能够秒杀成功,否则就秒杀失败);
c、异步使用MQ执行修改库存操作;
d、提供一个根据用户信息查询秒杀结构的接口;
4、项目部署
Nginx + lvs 实现服务高可用和集群;
5、其他点
分时段秒杀