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

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

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

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

一、项目准备工作

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

RabbitMQ:消息队列,如果此前没有接触过RabbitMQ的,可以看我的RabbitMQ系列文章:https://blog.csdn.net/qq_41973594/category_10218582.html

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

https://blog.csdn.net/qq_41973594/category_9831988.html

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

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

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

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

二、系统预期实现目标

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

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

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

三、本项目需要的工具

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

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

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

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

相关文章:

  • 【总结】oracle恢复误删除数据,解除锁定的等sql语句
  • 从零搭建基于SpringBoot的秒杀系统(二):快速搭建一个SpringBoot项目
  • 重拾cgi——cgi dispatcher
  • 从零搭建基于SpringBoot的秒杀系统(三):首页、详情页编写
  • 从零搭建基于SpringBoot的秒杀系统(四):雪花算法生成订单号以及抢购功能实现
  • 操作系统实验一 命令解释程序的编写
  • 从零搭建基于SpringBoot的秒杀系统(五):基于Shiro的人员登陆认证
  • 从零搭建基于SpringBoot的秒杀系统(六):使用RabbitMQ让订单指定时间后失效
  • 从零搭建基于SpringBoot的秒杀系统(七):高并发导致超卖问题分析处理
  • 从零搭建基于SpringBoot的秒杀系统(八):通过分布式锁解决多线程导致的问题
  • 读《世界是数字的》有感
  • 面试官问我:什么是静态代理?什么是动态代理?注解、反射你会吗?
  • redis入门到精通系列(十):springboot集成redis及redis工具类的编写
  • css3延时动画
  • redis入门到精通系列(十一):redis的缓存穿透、缓存击穿以及缓存雪崩详解
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 2017年终总结、随想
  • 2019年如何成为全栈工程师?
  • Apache Pulsar 2.1 重磅发布
  • ES6 ...操作符
  • JS 面试题总结
  • PAT A1120
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • React Transition Group -- Transition 组件
  • SpiderData 2019年2月13日 DApp数据排行榜
  • Zsh 开发指南(第十四篇 文件读写)
  • 包装类对象
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 协程
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 回归生活:清理微信公众号
  • ​queue --- 一个同步的队列类​
  • ​如何防止网络攻击?
  • ​油烟净化器电源安全,保障健康餐饮生活
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (k8s中)docker netty OOM问题记录
  • (二)fiber的基本认识
  • (排序详解之 堆排序)
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (算法)求1到1亿间的质数或素数
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .NET Core 成都线下面基会拉开序幕
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • @media screen 针对不同移动设备
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [51nod1610]路径计数
  • [BT]BUUCTF刷题第8天(3.26)
  • [BUUCTF 2018]Online Tool
  • [C#]C# winform部署yolov8目标检测的openvino模型
  • [CLR via C#]11. 事件
  • [CSDN首发]鱿鱼游戏的具体玩法详细介绍