【秒杀架构】

参考:https://www.bilibili.com/video/BV1jA411k7eG?p=9&vd_source=898d5514be58985430a49b46d5500c13

 

场景:

  

设计目标:最小改动保证秒杀时间的流量洪流不会冲垮服务器

整体思路:

  

 1、流量页面如何将请求拦截在上游?

  静态请求

  

  动态请求:

 

   

下单页面如何将请求拦截在上游?

   1、进入下单页:1)页面URL后台动态获取;2)用户点击下单页购买按钮直接disable

   2、订单提交:针对高并发使用缓存或CDN进行处理难度不大

网关层面过滤请求:

  1、限定每个用户访问频率:比如5s下单一次

  2、限定每个IP访问频率:避免机器人下单

  3、把1个时间段的请求拦截掉一个百分比,或只允许特定数量的请求进行后台服务器

后台服务过滤请求:

  1、库存放入Redis;2、订单写入缓存;3、订单批量落库

付款页如何将请求拦截在上游?

  如果业务逻辑出现订单未及时付款而被取消,需把数据库及Redis库存加回去

 

 

posted @ 2024-03-10 21:04  飞翔在天  阅读(3)  评论(0编辑  收藏  举报