当前位置: 首页 > article >正文

怎么设计一个秒杀系统

1、系统部署

秒杀系统部署要单独区别开其他系统单独部署,这个系统的流量肯定很大,单独部署。数据库也要单独用一个部署的数据库或者集群,防止高并发导致整个网站不可用。

2、防止超卖

100个库存,1000个人买,要保证不会超卖

防止超卖要保证原子性,判断库存名额是否充足和减少库存扣减成功放到一个lua脚本里面

3、限流

防止机器一直点

IP限流:IP限流的实现方法是根据请求IP地址来进行限制。具体做法是在服务器端记录每个IP地址的请求次数,当请求次数超过设定的阈值时,就拒绝该IP地址的请求。可以使用分布式缓存技术如Redis来记录每个IP的请求次数,并设置定时清除缓存的策略,以保证数据的准确性和实时性。

请求频率限制:实现方法是根据一定时间内的请求次数来进行限制。具体做法是在服务器端记录每个用户请求的时间,并对请求进行计数,当请求次数超过设定的阈值时,就拒绝该用户的请求。可以使用令牌桶算法或者漏桶算法来实现请求频率限制,同时也可以使用分布式缓存技术如Redis来记录每个用户的请求时间和请求次数。

4、静态优化

很多用户在活动前会访问静态页面进行刷新,所以要静态分离开

URL唯一化处理,我们在进行静态化资源的时候,对页面静态资源进行提前缓存,保证用户直接接请求URL时候,无需解析请求头,无需重组HTTP协议,可以直接找到静态资源返回,不与后端做数据交互,一般静态资源我们放到CDN上,CDN就近原则可提高我们的响应速度和命中率,同时cdn开启资源压缩,减少传输数据量。

5、降级

降级就是系统容量达到一定程度时,限制或关闭系统的某些非核心功能,从而把资源保留给更核心的业务,例如秒杀下单后给用户增加积分,这个功能不是下单的核心功能,可以先记录一条信息,等后面流量下来后在调用积分系统给用户补上

6、按钮置灰

12点的秒杀,11点59用户猛点,猛发请求也会对服务器性能造成影响,所有我们的秒杀一定是在未达到时间点的时候,不让点,时间点一到,通过前端的定时器来将按钮变更。

7、预热

秒杀读多写少,访问商品人数往往大于购买人数,活动和库存都可以提前预热,数据提前放到redis中,并且redis搭建好集群部署防止缓存击穿。谁知好过期时间逻辑删除策略等

8、流量错峰、防刷

使用各种手段,将流量分担到更大宽裕的时间点,比如用验证码

9、异步下单

使用消息队列来完成异步下单,注意后台经过了校验、限流后流入的都是有效的,队列接收到消息之后异步生成订单,然后订单创建成功之后,入库没有问题的话,可以使用短信或其他方式告知用户秒杀成功,如果失败的话,我们可以引入一些补偿机制进行重试。

10、多级缓存

在传统的缓存架构下,tomcat成为了并发瓶颈

商品详情页是不会经常变动的,这些数据可以提前用多级缓存缓存到nginx本地缓存中,离用户最近的地方,就可以这样设计多级缓存架构来解决

 

 


http://www.kler.cn/a/3680.html

相关文章:

  • C# 委托和事件思维导图
  • 可视化-numpy实现线性回归和梯度下降法
  • 智能新浪潮:亚马逊云科技发布Amazon Nova模型
  • SDL2:Android APP编译使用 -- SDL2多媒体库使用音频实例
  • STM32-串口-UART-Asynchronous
  • 气膜料仓:工业仓储的高效与安全新选择—轻空间
  • 云原生领域下的开发平台
  • 【数据结构】树和二叉树的介绍
  • 基于 Docker 的深度学习环境:入门篇
  • 【LeetCode】链表练习 9 道题
  • 从零开始学OpenCV——图像灰度变换详解(线性与非线性变换)
  • 小程序逆向工程:这个开源的小程序逆向工具真不错,2023年亲测成功
  • 【面试题系列|Java】Java基础面试题
  • 使用txt编写Java代码并通过cmd命令执行
  • 常见HTTP状态码汇总
  • 计算机网络笔记——物理层
  • 【python实操】年轻人,别用记事本保存数据了,试试数据库吧
  • 【数据结构与算法】堆与堆排序
  • 【算法基础】一篇文章彻底弄懂Dijkstra算法|多图解+代码详解
  • 【linux】深入了解TCP与UDP
  • 数据结构MySQL —— 索引
  • 记录springboot+vue+fastdfs实现简易的文件(上传、下载、删除、预览)操作
  • Spring Boot集成RocketMQ实现普通、延时、事务消息发送接收、PULL消费模式及开启ACL | Spring Cloud 30
  • LORA: LOW-RANK ADAPTATION OF LARGE LAN-GUAGE MODELS
  • C++11新特性
  • 安全防御之入侵检测篇