部署方案
2025/12/3大约 7 分钟
淘票票项目部署方案
本文档详细说明淘票票项目的部署步骤和环境配置要求,帮助开发者快速搭建开发环境并启动项目。
项目获取
项目地址
# HTTPS克隆地址
git clone https://github.com/Moonlight168/taopiaopiao.git克隆注意事项
- 项目目录路径中不要包含中文,否则在服务启动时可能出现class找不到的问题
开发环境准备
IDE导入
使用IntelliJ IDEA导入项目:
- 通过File > New > Project from Version Control导入
- URL填写上述HTTPS或SSH地址
- 等待IntelliJ IDEA通过Maven构建完毕项目
Maven加速配置
为加快Maven构建速度,建议配置阿里云镜像仓库:
在Maven配置文件apache-maven-3.6.3\conf\settings.xml中添加:
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>编译验证
项目构建完成后,执行以下命令验证编译是否成功:
mvn clean compile中间件环境搭建
淘票票项目推荐使用Docker Compose快速搭建所需中间件环境。以下是docker-compose配置和部署步骤:
Docker Compose配置
创建一个docker-compose.yml文件,内容如下:
version: '3.8'
services:
# MySQL数据库
mysql:
image: mysql:8.0
container_name: taopiaopiao-mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_password
MYSQL_USER: your_account
MYSQL_PASSWORD: your_password
MYSQL_DATABASE: taopiaopiao_base
ports:
- "3306:3306"
volumes:
- mysql-data:/var/lib/mysql
- ./mysql/conf:/etc/mysql/conf.d
- ./mysql/init:/docker-entrypoint-initdb.d
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
# Redis缓存
redis:
image: redis:6.2
container_name: taopiaopiao-redis
restart: always
ports:
- "6379:6379"
volumes:
- redis-data:/data
command: redis-server --appendonly yes
# Nacos服务注册与配置中心
nacos:
image: nacos/nacos-server:v2.2.0
container_name: taopiaopiao-nacos
restart: always
environment:
- MODE=standalone
- NACOS_AUTH_ENABLE=true
ports:
- "8848:8848"
- "9848:9848"
- "9849:9849"
volumes:
- nacos-data:/home/nacos/data
- nacos-logs:/home/nacos/logs
# Kafka消息队列
kafka:
image: bitnami/kafka:3.3
container_name: taopiaopiao-kafka
restart: always
environment:
- KAFKA_CFG_NODE_ID=0
- KAFKA_CFG_PROCESS_ROLES=controller,broker
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
ports:
- "9092:9092"
volumes:
- kafka-data:/bitnami/kafka
# Elasticsearch搜索引擎
elasticsearch:
image: elasticsearch:7.17.10
container_name: taopiaopiao-elasticsearch
restart: always
environment:
- discovery.type=single-node
- ES_JAVA_OPTS=-Xms512m -Xmx512m
- xpack.security.enabled=false
ports:
- "9200:9200"
- "9300:9300"
volumes:
- es-data:/usr/share/elasticsearch/data
volumes:
mysql-data:
redis-data:
nacos-data:
nacos-logs:
kafka-data:
es-data:部署命令
- 启动所有中间件服务:
# 在包含docker-compose.yml的目录下执行
docker-compose up -d- 验证服务是否正常运行:
docker-compose ps- 查看服务日志:
# 查看特定服务日志,如MySQL
docker-compose logs -f mysql
# 查看所有服务日志
docker-compose logs -f- 停止所有服务:
docker-compose down- 停止并删除数据卷(谨慎使用):
docker-compose down -v注意事项
- 请确保Docker和Docker Compose已正确安装在您的系统上
- 首次启动可能需要较长时间,特别是Elasticsearch
- 生产环境建议根据实际需求调整资源限制和配置
- 数据库连接时,请使用配置中的your_account和your_password作为用户名和密码
数据库配置
分库分表说明
淘票票项目采用微服务架构,每个服务使用独立的数据库,除base-data和customize服务外,其余服务使用了分库分表结构。
数据库导入步骤
- 首先执行
cloud文件夹中的1_taopiaopiao_cloud_create_database.sql创建数据库 - 然后执行
cloud文件夹中的其他SQL文件(无特定顺序要求)
账户密码配置
- 通过Docker Compose部署时,数据库账户为
your_account,密码为your_password - 项目配置文件中的数据库连接信息需要与Docker Compose中的配置保持一致
- 如需修改数据库连接配置,请同时更新Docker Compose文件和各服务的配置文件
版本选择
淘票票项目基于SpringBoot框架开发:
当前推荐版本
- 分支:main(默认分支)
- 要求:JDK 17及以上
- 特点:最新功能,持续更新维护
启动流程
使用Docker Compose的完整启动流程
启动中间件服务:
# 在包含docker-compose.yml的目录下执行 docker-compose up -d验证中间件服务状态:
docker-compose ps确保所有中间件服务(MySQL、Nacos、Redis、Kafka、Elasticsearch)都处于正常运行状态
访问Nacos控制台:
- 打开浏览器访问:http://localhost:8848/nacos
- 默认登录账号密码:nacos/nacos
导入Nacos配置(如有):
- 在Nacos控制台中导入项目所需的配置文件
- 确保所有微服务的配置都已正确设置
启动微服务:
- 按照依赖顺序启动各微服务模块:
- 先启动基础服务(如base-data)
- 再启动业务服务
- 可以通过IDE直接启动,或打包后通过Docker部署
- 按照依赖顺序启动各微服务模块:
验证服务启动状态:
- 在Nacos控制台查看服务注册状态
- 访问各服务的健康检查接口
- 执行基本功能测试验证服务可用性
常见问题排查
- 数据库连接失败:检查数据库服务是否启动,账户密码是否正确
- 类找不到错误:检查项目路径是否包含中文
- 服务注册失败:检查Nacos服务是否正常运行
- 中间件连接问题:确认各中间件配置是否正确,服务是否启动
后端项目部署启动
在完成项目环境搭建和数据库配置后,可以按照以下步骤启动后端服务:
Gateway网关项目启动
- 在IDE中找到Gateway网关的启动类
- 右键选择Run或Debug启动
业务服务启动
- 启动顺序:
- 数据基础服务需要第一个启动
- 其余服务启动时没有严格的先后关系
- 特殊服务说明:
- 限流功能服务、监听服务和代码生成器与业务服务分离,可以不启动
设置启动参数
项目中默认使用127.0.0.1作为中间件地址,如果使用云服务或其他环境的中间件,需要设置启动参数:
设置步骤
- 在IDE中运行一次对应的SpringBoot启动类
- 在IDE右上角的启动管理中选择Edit Configurations...
- 选择对应的服务启动配置
- 点击Modify options菜单
- 选择Add VM options
- 添加相应的参数
启动参数详情
# JVM内存设置
-XX:MaxMetaspaceSize=256M -Xmx256M
# Redis配置
-Dspring.data.redis.host=${redis地址}
-Dspring.data.redis.password=${redis地址密码}
# Nacos配置
-Dspring.cloud.nacos.discovery.server-addr=${nacos地址}:8848
# Kafka配置
-Dspring.kafka.bootstrap-servers=${kafka地址}:9092
# Elasticsearch配置
-Delasticsearch.ip=${elasticsearch地址}:9200
-Delasticsearch.userName=${elasticsearch账户}
-Delasticsearch.passWord=${elasticsearch账户密码}
# 数据隔离前缀(重要!必须全小写)
-Dprefix.distinction.name=my注意事项
- Nacos默认账号密码为nacos/nacos,如需修改需添加:
-Dspring.cloud.nacos.discovery.username=${你的nacos账号} -Dspring.cloud.nacos.discovery.password=${你的nacos密码} - 节目服务初始化数据较多,建议内存设置调整为:
-XX:MaxMetaspaceSize=512M -Xmx1024M prefix.distinction.name用于多人使用云环境时隔离数据,值必须全小写
常见启动错误处理
- 如果启动时出现命令行过长的错误,选择"Shorten the command line and rerun"即可
前端项目部署启动
淘票票前端项目基于Vue3开发,以下是部署启动步骤:
Node.js环境要求
- 推荐Node.js版本 >= 16
- 安装完成后可通过以下命令验证:
node -v npm -v
前端项目启动
1. 安装项目依赖
进入前端项目目录后执行:
npm install2. 启动项目
npm run dev启动成功后,可以通过浏览器访问前端界面
项目配置说明
接口调用地址配置
在前端项目的.env.development文件中,检查以下配置:
VITE_APP_URL:设置为后端服务地址,默认为http://127.0.0.1:6085
接口调用方式切换
前端项目支持两种调用方式,可通过配置直接切换:
- 打开
.env.development文件 - 修改
VITE_SIGN_FLAG配置:- 0:不签名普通调用
- 1:签名调用
订单接口版本指定
为了支持高并发订单生成流程的逐步优化,前端可指定调用的订单接口版本:
- 在
.env.development文件中找到VITE_CREATE_ORDER_VERSION配置 - 设置值为1到4之间的数字,对应不同的订单接口版本
部署建议
开发环境
- 本地安装所有中间件,使用默认配置
- 直接通过IDE启动各微服务
- 前端使用开发模式启动进行调试
测试/生产环境
- 使用Docker容器化部署各服务和中间件
- 配置适当的资源限制和监控
- 实现服务的高可用部署
- 前端项目构建后部署到Nginx等Web服务器