秒杀活动设计

秒杀活动设计_第1张图片

一、单独的服务、数据库

秒杀是瞬时流量超高的业务,为了避免影响到原本正常的功能,因此需要单独的秒杀服务、数据库。

二、Nginx负载均衡

Nginx是高性能的web服务器,一般能承受几万QPS的并发,而单个Tomcat一般只能承受几百QPS的并发,因此可以部署多个秒杀服务,通过Nginx做负载均衡,分发并发流量。

三、限流

前端限流:

  1. 秒杀没开始前,按钮置灰,秒杀时间到了,才能点击。
  2. 用户点击之后,再置灰几秒,不能一直点击。

后端限流:

  1. Sentinel、Hystrix等限流组件。
  2. 令牌通限流。
  3. 针对用户、IP限制频率。

另外还需要降低、熔断、隔离。

四、前端资源静态化

将商品的描述、参数、成交记录、图像、评价等全部写入到一个静态页面,用户请求不需要通过访问后端服务器,不需要经过数据库,直接在前台客户端生成,再把静态部署到CDN服务器,这样可以最大可能的减少服务器的压力。

五、秒杀链接加盐

链接暴露会使黄牛党不通过页面,直接用工具或者脚本抢单,就算加上时间校验,也有可能在开始秒杀瞬间抢到大量订单,所以秒杀

你可能感兴趣的:(Java面试总结笔记,lua,redis,高并发)