从零搭建基于SpringBoot的秒杀系统(一):项目准备

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 如今的应用系统已经不再局限于简单的单机环境或者几百几千的点击量,像每年的618和双十一,各大电商平台都会同时接收到千万级的点击量,因此有了做这个秒杀项目的想法。系统后端采用SpringBoot,前端用了BootStrap框架,因为这次的主要目的是后端逻辑的学习,因此本项目不再注重前端的处理。

网络异常,图片无法展示
|


如今的应用系统已经不再局限于简单的单机环境或者几百几千的点击量,像每年的618和双十一,各大电商平台都会同时接收到千万级的点击量,因此有了做这个秒杀项目的想法。

系统后端采用SpringBoot,前端用了BootStrap框架,因为这次的主要目的是后端逻辑的学习,因此本项目不再注重前端的处理。


一、项目准备工作

本项目会涉及到的技术有:

RabbitMQ:消息队列,如果此前没有接触过RabbitMQ的,可以看我的RabbitMQ系列文章:

https://link.juejin.cn/?target=https%3A%2F%2Fblog.csdn.net%2Fqq_41973594%2Fcategory_10218582.html

Redis:最常用的非关系型数据库,如果对Redis不熟悉,可以看我的Redis系列文章:

https://link.juejin.cn/?target=https%3A%2F%2Fblog.csdn.net%2Fqq_41973594%2Fcategory_9831988.html

Redission:JAVA的一个基于Redis的框架。

Shiro:Java安全框架,执行身份验证、授权、密码和会话管理。

Zookeeper:分布式应用程序协调服务,在本项目中实现分布式锁的功能

以及Spring的一系列框架技术。

二、系统预期实现目标

实现基本的购物功能,用户登陆注册功能,以及承受十万级请求的秒杀功能,系统主要以后台逻辑为主,前端的内容相对偏少,界面也相对简单。

以下是秒杀系统的流程图:



用户进入界面后首先通过shiro来验证登陆状态,如果发现未登录,则进入登陆页由用户进行登陆或注册登陆,如果发现已经登陆,则进入指定的页面。进入首页后,点击抢购则进入抢购页,点击抢购后由分布式锁控制并发请求,如果抢购失败则返回失败信息,否则提示抢购成功,提示付款。并送入死信队列,如果30分钟内未支付,则让订单失效。

三、本项目需要的工具

Redis安装文件,Zookeeper安装文件,Jmeter压测工具

四、完成该秒杀系统的目的

很多开发(包括我)都很难在工作中接触到高并发的环境,并且基本上都在拧螺丝。因此想通过项目让自己始终能跟进较新的技术。在这个项目中用到的技术也会在之后的博客中不断更新,大家可以持续关注下。

我搭建了一个微信公众号《Java鱼仔》,如果你对本项目有任何疑问,欢迎在公众号中联系我,我会尽自己所能为大家解答。



相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
27天前
|
XML Java 应用服务中间件
SpringBoot项目打war包流程
本文介绍了将Spring Boot项目改造为WAR包并部署到外部Tomcat服务器的步骤。主要内容包括:1) 修改pom.xml中的打包方式为WAR;2) 排除Spring Boot内置的Tomcat依赖;3) 添加Servlet API依赖;4) 改造启动类以支持WAR部署;5) 打包和部署。通过这些步骤,可以轻松地将Spring Boot应用转换为适合外部Tomcat服务器的WAR包。
128 64
SpringBoot项目打war包流程
|
1月前
基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
132 36
|
27天前
|
前端开发 JavaScript Java
springboot图书馆管理系统前后端分离版本
springboot图书馆管理系统前后端分离版本
39 12
|
22天前
|
自然语言处理 IDE Java
SpringBoot start.aliyun.com创建项目,解决properties乱码的问题
通过确保文件和开发环境的编码一致,配置 Maven 编码,设置 Spring Boot 应用和嵌入式服务器的编码,可以有效解决 properties 文件的乱码问题。以上步骤可以帮助开发者确保在 Spring Boot 项目中正确处理和显示多语言字符,避免因编码问题导致的乱码现象。
36 5
|
25天前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生就业服务平台设计与实现(系统源码+文档+数据库+部署等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
64 6
|
25天前
|
JavaScript Java 测试技术
基于Java+SpringBoot+Vue实现的车辆充电桩系统设计与实现(系统源码+文档+部署讲解等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
56 6
|
25天前
|
JavaScript NoSQL Java
基于SpringBoot+Vue的班级综合测评管理系统设计与实现(系统源码+文档+数据库+部署等)
✌免费选题、功能需求设计、任务书、开题报告、中期检查、程序功能实现、论文辅导、论文降重、答辩PPT辅导、会议视频一对一讲解代码等✌
40 4
|
25天前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生体质测试管理系统设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
37 2
|
1月前
|
存储 安全 Java
Spring Boot 3 集成Spring AOP实现系统日志记录
本文介绍了如何在Spring Boot 3中集成Spring AOP实现系统日志记录功能。通过定义`SysLog`注解和配置相应的AOP切面,可以在方法执行前后自动记录日志信息,包括操作的开始时间、结束时间、请求参数、返回结果、异常信息等,并将这些信息保存到数据库中。此外,还使用了`ThreadLocal`变量来存储每个线程独立的日志数据,确保线程安全。文中还展示了项目实战中的部分代码片段,以及基于Spring Boot 3 + Vue 3构建的快速开发框架的简介与内置功能列表。此框架结合了当前主流技术栈,提供了用户管理、权限控制、接口文档自动生成等多项实用特性。
82 8
|
25天前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的冬奥会科普平台设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
43 0

热门文章

最新文章