【秒杀系统架构图】

2024-08-20 23:52
文章标签 系统 秒杀 架构图

本文主要是介绍【秒杀系统架构图】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 高并发
  • 防止超卖和恶意请求
  • 定时同步商品
  • 用户秒杀的流程
  • 秒杀服务的关注点:

秒杀系统一般出现正在电商平台中,秒杀系统需要支持高并发,保持一致性和高可用的特点:
高性能。 秒杀涉及大量的并发读和并发写,因此支持高并发访问这点非常关键。本专栏将从设计数据的动静分离方案、热点的发现与隔离、请求的削峰与分层过滤、服务端的极致优化这4个方面重点介绍。
一致性。 秒杀中商品减库存的实现方式同样关键。可想而知,有限数量的商品在同一时刻被很多倍的请求同时来减库存,减库存又分为“拍下减库存”“付款减库存”以及预扣等几种,在大并发更新的过程中都要保证数据的准确性。
高可用。 虽然我介绍了很多极致的优化思路,但现实中总难免出现一些我们考虑不到的情况,所以要保证系统的高可用和正确性,我们还要设计一个PlanB来兜底,以便在最坏情况发生时仍然能够从容应对。

高并发

1.缓存优化
使用缓存技术,减少数据库压力,提高数据库性能。
2.异步处理
使用消息队列等异步处理技术,将一些不需要立即返回的操作数据,异步操作。
3.限流控制
通过限制每个用户的请求频率,并发数等方式,控制系统的负载。

防止超卖和恶意请求

再防止超卖和恶意请求方面我们可以:
1.使用分布式锁
使用分布式锁,可以保证每时刻只有一个线程操作同一件商品。
2.在请求的过程中,增加验证码,防止恶意的爬虫接口。
3.IP限制,根据用户的IP限制请求频率,防止恶意请求

定时同步商品

在这里插入图片描述
定时上架秒杀活动和秒杀活动对应的商品,运营人员需要通过界面将秒杀活动和秒杀商品添加上,对应的定时任务就会在秒杀活动开始的前三天,将秒杀活动和秒杀商品缓存到redis中。
将对应秒杀活动商品的数量以信号量缓存到redis中。

用户秒杀的流程

在这里插入图片描述

1.用户秒杀的过程中我们需要做一些合法性的校验,例如用户是否登录,如果未登录重定向到登录界面让用户做登录操作。
2.合法性校验,例如参与秒杀活动的时间,商品随机码是否正确
以及用户参加秒杀活动的次数是否存在限制,例如每个用户只能参加一次我们利用threadLocal进行存储用户信息,利用redis占位符进行幂等性的判断,我们在进行减库存操作。
3.信号量判断,判断当前的库存是否支撑此次用户的抢购,足够-扣减
不够-结束。
4.创建订单之后的操作,我们放到MQ异步操作,存储订单信息,这个地方增加事务,如果失败,订单回滚,信号量也需要回滚。
5.收货地址确认:校验收回地址信息,判断是否正确等
6。支付操作-调用三方支付接口:如微信-支付宝-三方支付拉卡拉 联动优势等。

秒杀服务的关注点:

1.独立部署:面对高并发的情况,及时服务扛不住,也不影响电商平台的正常下订单。
2.秒杀请求做随机处理:防止恶意攻击,防止链接暴露,自己内部人员作弊。
3.库存预热,快速扣减:秒杀服务不用每次都去数据库中校验库存,提前把库存预热到redis中,通过信号量控制秒杀的服务请求。
4.动静分离:Nginx去做动静分离,保证秒杀服务中只有动态请求进入后端集群,通过CDN服务分担集群的压力。
5.恶意请求的拦截:识别非法请求,并拦截。放到网关层。
6.流量错峰:通过验证码或者动态图形将时间分摊。
7.限流,熔断,降级:前端限流,

这篇关于【秒杀系统架构图】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1091536

相关文章

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has

基于Qt实现系统主题感知功能

《基于Qt实现系统主题感知功能》在现代桌面应用程序开发中,系统主题感知是一项重要的功能,它使得应用程序能够根据用户的系统主题设置(如深色模式或浅色模式)自动调整其外观,Qt作为一个跨平台的C++图形用... 目录【正文开始】一、使用效果二、系统主题感知助手类(SystemThemeHelper)三、实现细节

CentOS系统使用yum命令报错问题及解决

《CentOS系统使用yum命令报错问题及解决》文章主要讲述了在CentOS系统中使用yum命令时遇到的错误,并提供了个人解决方法,希望对大家有所帮助,并鼓励大家支持脚本之家... 目录Centos系统使用yum命令报错找到文件替换源文件为总结CentOS系统使用yum命令报错http://www.cppc

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境