(1)动静分离。让cdn来处理静态资源,减少后端服务的压力
(2)Nginx 限流,让每个ip在一秒内只能通过几次。防止恶意请求
(3)秒杀服务独立部署,单一职责,避免影响其他服务
(4)秒杀读多写少,需要库存和秒杀商品信息预热,用信号量来控制秒杀的请求
(5)秒杀链接加密,只有秒杀时间到了,才能看到商品的秒杀随机码token,防止提前秒杀商品
(6)比如加入购物车之前弹窗,来分担流量等
(7)前端限流,页面点击按钮点一下就不能再点,或者几秒后在点。
后端限流 , 通过网关每个Ip一秒通过几次
快速失败降级。失败的直接返回失败页面
(8)使用redis的信号量,因为是原子操作,所以只能秒杀数量的人通过,然后把信息发送给消息队列来创建订单,减库存


创建完订单,就可以跳转到待支付的页面,让用户选择好收货地址,然后支付


秒杀服务中使用三个reids
key1: 常量_活动开始时间_活动结束时间:(list结构),因为不同的秒杀活动,可以包含同一个sku,比如10点,12点
val1值为:场次的活动Id+skuId,
key2: 常量: 活动场次Id+skuId: (Map结构)
val2值为: 商品信息
key3: 常量_uuid: (由reidsson自动创建)
val3值为:秒杀商品的数量
通过 查询redis key 常量*(换成扫描) 来把活动的数据拿到,跟当前时间对比,满足的活动,就根据活动Id+skuId取商品信息
