项目简介
本项目是基于Spring Cloud微服务架构和Vue前端框架搭建的秒杀系统。借助Eureka、Zuul、Ribbon、Spring Cloud Config、RestTemplate、Redis、RabbitMQ、Nginx等技术,实现高并发场景下的秒杀业务处理。项目主要用于学习微服务架构,具备负载均衡、限流、服务降级等特性。
项目的主要特性和功能
微服务架构
- 配置中心:设有两个配置中心,管理微服务配置信息。
- 网关中心:两个网关中心,负责请求的路由和负载均衡。
- 秒杀微服务:执行具体的秒杀操作。
- 时间同步微服务:同步秒杀活动的时间。
- 秒杀列表微服务:获取秒杀商品列表。
- 消息队列微服务:读取消息队列并写入数据库。
负载均衡
- Nginx负载均衡:在Nginx上对网关服务按权重分配进行负载均衡。
- Zuul负载均衡:网关服务使用Zuul提供的Ribbon实现负载均衡。
- 服务间调用负载均衡:服务间调用时通过
@LoadBalance
实现负载均衡。
限流
网关限流:在网关服务依据测试数据配置限流,采用默认限流类型。
服务降级
熔断机制:调用下订单函数时开启,若调用失败,返回错误提示并记录日志。
数据库操作
- 数据源配置:使用Druid数据源管理数据库连接池。
- 数据库映射:通过MyBatis实现数据库操作映射,提供CRUD操作。
消息队列
RabbitMQ配置:配置队列、交换机和绑定,保障消息可靠传输。
前端
Vue框架:用于前端开发,实现秒杀商品的展示与操作。
安装使用步骤
环境准备
- 安装JDK 8或更高版本的Java环境。
- 安装Maven用于项目构建和依赖管理。
- 安装并配置MySQL数据库。
- 安装并启动Redis服务。
- 安装并启动RabbitMQ服务。
- 安装并配置Nginx用于负载均衡。
项目构建
- 复制项目(此处原文档未给出复制命令)。
- 进入项目目录:
bash cd microseckill
- 构建项目:
bash mvn clean install
配置文件
- 在
application.yml
中配置数据库连接信息。 - 在
application.yml
中配置Redis连接信息。 - 在
application.yml
中配置RabbitMQ连接信息。 - 配置Nginx的负载均衡策略。
启动服务
- 启动Eureka服务:
bash java -jar eureka-server/target/eureka-server.jar
- 启动Zuul网关服务:
bash java -jar zuul-service/target/zuul-service.jar
- 启动秒杀微服务:
bash java -jar seckill-service/target/seckill-service.jar
- 启动时间同步微服务:
bash java -jar time-service/target/time-service.jar
- 启动秒杀列表微服务:
bash java -jar list-service/target/list-service.jar
- 启动消息队列微服务:
bash java -jar queue-service/target/queue-service.jar
前端部署
- 安装Node.js。
- 进入前端目录:
bash cd vue-frontend
- 安装依赖:
bash npm install
- 启动前端服务:
bash npm run serve
访问系统
- 打开浏览器,访问
http://localhost:8080
。 - 在前端页面进行秒杀商品的查看和操作。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】