You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
184 lines
4.7 KiB
184 lines
4.7 KiB
|
3 months ago
|
# Spring Boot应用最新部署指南(性能优化版)
|
||
|
|
|
||
|
|
## 版本信息
|
||
|
|
- **版本**: 2.0
|
||
|
|
- **日期**: 2024
|
||
|
|
- **更新内容**: 包含数据库性能优化、SQL查询优化、分页功能和缓存配置
|
||
|
|
|
||
|
|
## 一、优化内容概述
|
||
|
|
|
||
|
|
### 1.1 已完成的性能优化
|
||
|
|
|
||
|
|
#### SQL查询优化
|
||
|
|
- 将`SELECT *`查询替换为显式字段列表,减少数据传输量
|
||
|
|
- 优化复杂JOIN查询,减少不必要的表连接
|
||
|
|
|
||
|
|
#### 分页功能实现
|
||
|
|
- 新增`selectAllManagersWithPagination`方法实现分页查询
|
||
|
|
- 添加`getManagersCount`方法获取总数用于分页计算
|
||
|
|
|
||
|
|
#### 缓存配置
|
||
|
|
- 为ManagersMapper添加LRU二级缓存配置
|
||
|
|
- 提升重复查询性能
|
||
|
|
|
||
|
|
#### 数据库索引
|
||
|
|
- 为关键字段创建索引,提升查询性能
|
||
|
|
- 详细索引脚本位于`CREATE_OPTIMIZATION_INDEXES.sql`
|
||
|
|
|
||
|
|
## 二、部署前准备
|
||
|
|
|
||
|
|
### 2.1 确认构建产物
|
||
|
|
- **WAR文件**: `target\web-0.0.1-SNAPSHOT.war`
|
||
|
|
- **索引脚本**: `CREATE_OPTIMIZATION_INDEXES.sql`
|
||
|
|
- **验证文件**: `src\main\resources\mapper`目录下的优化后的XML文件
|
||
|
|
|
||
|
|
### 2.2 环境要求
|
||
|
|
- **Tomcat**: 10.1.48(Jakarta EE 10兼容)
|
||
|
|
- **JDK**: 17或更高
|
||
|
|
- **数据库**: 支持索引创建的关系型数据库
|
||
|
|
|
||
|
|
## 三、部署流程
|
||
|
|
|
||
|
|
### 3.1 本地准备部署文件
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 1. 清理并构建项目
|
||
|
|
mvn clean package -DskipTests
|
||
|
|
|
||
|
|
# 2. 重命名WAR文件
|
||
|
|
copy target\web-0.0.1-SNAPSHOT.war target\DL.war
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3.2 数据库索引优化(关键步骤)
|
||
|
|
|
||
|
|
在数据库服务器上执行索引创建脚本:
|
||
|
|
|
||
|
|
```sql
|
||
|
|
-- 执行CREATE_OPTIMIZATION_INDEXES.sql文件
|
||
|
|
-- 或直接执行以下索引创建语句
|
||
|
|
|
||
|
|
-- 为managers表创建索引
|
||
|
|
CREATE INDEX idx_managers_enterprise_id ON managers(enterprise_id);
|
||
|
|
CREATE INDEX idx_managers_user_name ON managers(user_name);
|
||
|
|
|
||
|
|
-- 为users表创建索引
|
||
|
|
CREATE INDEX idx_users_user_id ON users(user_id);
|
||
|
|
CREATE INDEX idx_users_user_name ON users(user_name);
|
||
|
|
CREATE INDEX idx_users_status ON users(status);
|
||
|
|
|
||
|
|
-- 为usermanagements表创建索引
|
||
|
|
CREATE INDEX idx_usermanagements_user_id ON usermanagements(user_id);
|
||
|
|
CREATE INDEX idx_usermanagements_role_id ON usermanagements(role_id);
|
||
|
|
CREATE INDEX idx_usermanagements_permission_level ON usermanagements(permission_level);
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3.3 上传部署文件
|
||
|
|
|
||
|
|
使用SFTP或SCP上传文件到服务器:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 上传WAR文件
|
||
|
|
scp target\DL.war user@your-server:/opt/tomcat/webapps/
|
||
|
|
|
||
|
|
# 上传索引脚本(用于备份)
|
||
|
|
scp CREATE_OPTIMIZATION_INDEXES.sql user@your-server:/opt/tomcat/
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3.4 服务器部署操作
|
||
|
|
|
||
|
|
登录服务器后执行:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 1. 停止Tomcat
|
||
|
|
cd /opt/tomcat/bin
|
||
|
|
./shutdown.sh
|
||
|
|
|
||
|
|
# 2. 等待Tomcat完全停止(约30秒)
|
||
|
|
|
||
|
|
# 3. 备份旧应用
|
||
|
|
cp -r /opt/tomcat/webapps/DL /opt/tomcat/backup/
|
||
|
|
|
||
|
|
# 4. 删除旧部署文件
|
||
|
|
rm -rf /opt/tomcat/webapps/DL*
|
||
|
|
|
||
|
|
# 5. 确保权限正确
|
||
|
|
chown -R tomcat:tomcat /opt/tomcat/webapps/
|
||
|
|
chmod -R 755 /opt/tomcat/webapps/
|
||
|
|
|
||
|
|
# 6. 启动Tomcat
|
||
|
|
./startup.sh
|
||
|
|
|
||
|
|
# 7. 监控部署日志
|
||
|
|
tail -f /opt/tomcat/logs/catalina.out
|
||
|
|
```
|
||
|
|
|
||
|
|
## 四、部署后验证
|
||
|
|
|
||
|
|
### 4.1 功能验证
|
||
|
|
- **访问应用**: `http://your-server-ip:8080/DL`
|
||
|
|
- **登录验证**: 确认可以正常登录
|
||
|
|
- **数据操作**: 验证增删改查功能正常
|
||
|
|
|
||
|
|
### 4.2 性能优化验证
|
||
|
|
|
||
|
|
#### 分页功能验证
|
||
|
|
- 访问负责人管理页面
|
||
|
|
- 确认列表显示已启用分页
|
||
|
|
- 验证翻页功能正常工作
|
||
|
|
- 检查数据加载速度是否提升
|
||
|
|
|
||
|
|
#### SQL查询性能验证
|
||
|
|
- 执行常用查询操作
|
||
|
|
- 确认响应时间明显改善
|
||
|
|
- 监控数据库慢查询日志
|
||
|
|
|
||
|
|
#### 缓存效果验证
|
||
|
|
- 连续访问相同数据页面
|
||
|
|
- 确认第二次及后续访问速度更快
|
||
|
|
|
||
|
|
## 五、回滚方案
|
||
|
|
|
||
|
|
如遇部署问题,请按以下步骤回滚:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 1. 停止Tomcat
|
||
|
|
cd /opt/tomcat/bin
|
||
|
|
./shutdown.sh
|
||
|
|
|
||
|
|
# 2. 删除新部署文件
|
||
|
|
rm -rf /opt/tomcat/webapps/DL*
|
||
|
|
|
||
|
|
# 3. 恢复备份
|
||
|
|
cp -r /opt/tomcat/backup/DL /opt/tomcat/webapps/
|
||
|
|
|
||
|
|
# 4. 启动Tomcat
|
||
|
|
./startup.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
## 六、批处理部署脚本
|
||
|
|
|
||
|
|
项目中提供了Windows批处理脚本`deploy_with_optimization.bat`,可以帮助准备部署文件。在项目根目录执行:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 运行批处理脚本
|
||
|
|
.\deploy_with_optimization.bat
|
||
|
|
```
|
||
|
|
|
||
|
|
## 七、注意事项
|
||
|
|
|
||
|
|
1. **备份**: 部署前务必备份应用数据和数据库
|
||
|
|
2. **维护窗口**: 选择低流量时段进行部署
|
||
|
|
3. **索引优化**: 必须执行数据库索引创建脚本
|
||
|
|
4. **性能监控**: 部署后持续监控系统性能
|
||
|
|
5. **日志检查**: 定期检查应用日志,及时发现问题
|
||
|
|
6. **权限问题**: 确保Tomcat用户对所有必要目录有正确权限
|
||
|
|
|
||
|
|
## 八、相关文档
|
||
|
|
|
||
|
|
- **性能优化详细说明**: `PERFORMANCE_OPTIMIZATION_GUIDE.md`
|
||
|
|
- **Mapper XML部署指南**: `MAPPER_XML_DEPLOYMENT_GUIDE.txt`
|
||
|
|
- **数据库索引脚本**: `CREATE_OPTIMIZATION_INDEXES.sql`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
> 部署完成后,请务必执行性能优化验证步骤,确保所有优化措施生效。
|