如今的应用系统已经不再局限于简单的单机环境或者几百几千的点击量,像每年的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:分布式应用程序协调服务,在本项目中实现分布式锁的功能
实现基本的购物功能,用户登陆注册功能,以及承受十万级请求的秒杀功能,系统主要以后台逻辑为主,前端的内容相对偏少,界面也相对简单。
用户进入界面后首先通过shiro来验证登陆状态,如果发现未登录,则进入登陆页由用户进行登陆或注册登陆,如果发现已经登陆,则进入指定的页面。进入首页后,点击抢购则进入抢购页,点击抢购后由分布式锁控制并发请求,如果抢购失败则返回失败信息,否则提示抢购成功,提示付款。并送入死信队列,如果30分钟内未支付,则让订单失效。
Redis安装文件,Zookeeper安装文件,Jmeter压测工具
很多开发(包括我)都很难在工作中接触到高并发的环境,并且基本上都在拧螺丝。因此想通过项目让自己始终能跟进较新的技术。在这个项目中用到的技术也会在之后的博客中不断更新,大家可以持续关注下。
我搭建了一个微信公众号《Java鱼仔》,如果你对本项目有任何疑问,欢迎在公众号中联系我,我会尽自己所能为大家解答。