12 KiB
12 KiB
MPS模拟批量处理程序部署指南
📋 目录
1. 开发环境打包
1.1 环境检查
首先确认开发环境已就绪:
# 检查Java版本
java -version
# 应显示: openjdk version "17.x.x"
# 检查Maven版本
mvn -version
# 应显示: Apache Maven 3.x.x
# 检查当前目录
pwd
# 应在项目根目录: MpsSimulationBatch
1.2 代码编译检查
# 清理并编译项目
mvn clean compile -Dfile.encoding=UTF-8
# 如果编译成功,继续下一步
# 如果有错误,请先解决编译问题
1.3 生成部署包
方式一:生成可执行JAR包(推荐)
# 打包生成jar-with-dependencies
mvn clean package -DskipTests -Dfile.encoding=UTF-8
# 检查生成的文件
ls -la target/
# 应该看到: mps-simulation-batch-jar-with-dependencies.jar
方式二:生成完整部署包
# 创建部署目录
mkdir -p deploy-package
# 复制必要文件
cp -r bin/ deploy-package/
cp -r conf/ deploy-package/
cp -r src/main/resources/ deploy-package/
cp target/mps-simulation-batch-jar-with-dependencies.jar deploy-package/
cp README.md deploy-package/
cp DEPLOY.md deploy-package/
# 创建日志目录
mkdir -p deploy-package/logs
# 打包部署文件
tar -czf mps-simulation-batch-deploy.tar.gz deploy-package/
echo "部署包已生成: mps-simulation-batch-deploy.tar.gz"
1.4 验证部署包
# 查看部署包内容
tar -tzf mps-simulation-batch-deploy.tar.gz
# 检查文件大小
ls -lh mps-simulation-batch-deploy.tar.gz
2. 部署包准备
2.1 部署包结构
正确的部署包应包含以下结构:
mps-simulation-batch-deploy.tar.gz
└── deploy-package/
├── bin/ # 启动脚本目录
│ ├── start.sh # Linux启动脚本
│ ├── start.bat # Windows启动脚本
│ ├── rerun.sh # Linux重跑脚本
│ └── rerun.bat # Windows重跑脚本
├── conf/ # 配置文件目录
│ └── application.properties # 应用配置文件
├── resources/ # 资源文件目录
│ └── logback.xml # 日志配置文件
├── logs/ # 日志目录(空目录)
├── mps-simulation-batch-jar-with-dependencies.jar # 可执行JAR包
├── README.md # 项目说明
└── DEPLOY.md # 部署指南
2.2 上传到服务器
方式一:使用scp上传
# 上传部署包到服务器
scp mps-simulation-batch-deploy.tar.gz username@server-ip:/opt/
# 示例
scp mps-simulation-batch-deploy.tar.gz root@192.168.1.100:/opt/
方式二:使用FTP工具
- 使用FileZilla、WinSCP等工具
- 上传到服务器的
/opt/目录
3. 服务器环境准备
3.1 系统要求
- 操作系统: Linux (CentOS 7+, Ubuntu 18+, 或 RHEL 7+)
- CPU: 2核以上
- 内存: 2GB以上
- 磁盘: 10GB以上可用空间
3.2 安装Java 17
CentOS/RHEL:
# 安装OpenJDK 17
sudo yum install -y java-17-openjdk java-17-openjdk-devel
# 设置JAVA_HOME
echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Ubuntu/Debian:
# 更新包管理器
sudo apt update
# 安装OpenJDK 17
sudo apt install -y openjdk-17-jdk
# 设置JAVA_HOME
echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
验证安装:
java -version
# 应显示: openjdk version "17.x.x"
echo $JAVA_HOME
# 应显示正确的Java安装路径
3.3 创建应用用户(推荐)
# 创建专用用户
sudo useradd -m -s /bin/bash mps-batch
# 创建应用目录
sudo mkdir -p /opt/mps-batch
sudo chown mps-batch:mps-batch /opt/mps-batch
# 切换到应用用户
sudo su - mps-batch
3.4 配置环境变量
# 配置编码环境变量
echo 'export LANG=zh_CN.UTF-8' >> ~/.bashrc
echo 'export LC_ALL=zh_CN.UTF-8' >> ~/.bashrc
source ~/.bashrc
# 验证环境变量
locale
4. 部署实施
4.1 解压部署包
# 切换到部署目录
cd /opt
# 解压部署包
sudo tar -xzf mps-simulation-batch-deploy.tar.gz
# 移动文件到指定目录
sudo mv deploy-package/* /opt/mps-batch/
sudo rmdir deploy-package
# 设置所有者
sudo chown -R mps-batch:mps-batch /opt/mps-batch
# 设置脚本执行权限
chmod +x /opt/mps-batch/bin/*.sh
4.2 验证部署结构
# 检查部署结构
cd /opt/mps-batch
tree -L 2 .
# 或者使用 ls -la 查看
# 验证关键文件
ls -la mps-simulation-batch-jar-with-dependencies.jar
ls -la bin/start.sh
ls -la conf/application.properties
4.3 修改脚本路径(重要)
由于生产环境和开发环境路径不同,需要更新脚本中的路径配置:
软件环境
- 操作系统: Linux (推荐 CentOS 7+ 或 Ubuntu 18+)
- Java: OpenJDK 17 或更高版本
- Maven: 3.6+ (编译时需要)
- 数据库: MySQL 8.0+ 或 达梦 8.0+
硬件要求
- CPU: 2核以上
- 内存: 2GB以上
- 磁盘: 10GB以上可用空间
部署步骤
1. 准备环境
安装Java 17
# CentOS/RHEL
sudo yum install java-17-openjdk java-17-openjdk-devel
# Ubuntu/Debian
sudo apt update
sudo apt install openjdk-17-jdk
# 验证安装
java -version
安装Maven(编译需要)
# CentOS/RHEL
sudo yum install maven
# Ubuntu/Debian
sudo apt install maven
# 验证安装
mvn -version
2. 获取项目代码
# 创建应用目录
sudo mkdir -p /opt/mps-batch
sudo chown $USER:$USER /opt/mps-batch
cd /opt/mps-batch
# 将项目文件上传到服务器
# 可以使用scp、rsync、git等方式
3. 编译项目
cd /opt/mps-batch
mvn clean package
# 验证编译结果
ls -la target/mps-simulation-batch-jar-with-dependencies.jar
4. 配置数据库
创建数据库和表
# 导入数据库表结构
mysql -u root -p < DDL/dump-cdsdb-202509011355.sql
配置数据库连接
# 编辑配置文件
vi conf/application.properties
修改数据库连接信息:
# 修改数据库连接信息
db.mysql.url=jdbc:mysql://your-db-host:3306/cdsdb?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false
db.mysql.username=your-username
db.mysql.password=your-password
5. 设置脚本权限
# 设置脚本执行权限
chmod +x bin/*.sh
# 验证脚本权限
ls -la bin/
6. 测试运行
数据库连接测试
# 运行程序测试数据库连接
./bin/start.sh
功能测试
# 测试重跑功能(使用历史日期避免影响当前数据)
./bin/rerun.sh 20250801 BIZ001
7. 配置定时任务
设置Crontab
# 编辑定时任务
crontab -e
# 添加以下内容(每天凌晨2点执行)
0 2 * * * /opt/mps-batch/bin/start.sh >> /opt/mps-batch/logs/cron.log 2>&1
# 查看定时任务
crontab -l
创建服务管理脚本(可选)
# 创建systemd服务文件
sudo vi /etc/systemd/system/mps-batch.service
服务文件内容:
[Unit]
Description=MPS Simulation Batch Service
After=network.target
[Service]
Type=oneshot
User=mps-batch
Group=mps-batch
WorkingDirectory=/opt/mps-batch
ExecStart=/opt/mps-batch/bin/start.sh
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
8. 日志配置
配置日志轮转
# 创建logrotate配置
sudo vi /etc/logrotate.d/mps-batch
配置内容:
/opt/mps-batch/logs/*.log {
daily
rotate 30
compress
delaycompress
missingok
notifempty
create 644 mps-batch mps-batch
copytruncate
}
9. 监控设置
脚本监控
# 创建监控脚本
vi bin/monitor.sh
监控脚本内容:
#!/bin/bash
# 检查批量执行状态的监控脚本
LOG_DIR="/opt/mps-batch/logs"
ALERT_EMAIL="admin@company.com"
# 检查最新日志中是否有错误
if grep -q "ERROR\|批量处理失败" "$LOG_DIR/batch-execution.log"; then
echo "MPS批量处理发现错误,请检查日志" | mail -s "MPS批量处理告警" "$ALERT_EMAIL"
fi
# 检查批量是否正常完成
if ! grep -q "批量处理成功完成" "$LOG_DIR/batch-execution.log"; then
echo "MPS批量处理可能未正常完成,请检查" | mail -s "MPS批量处理告警" "$ALERT_EMAIL"
fi
10. 安全配置
创建专用用户
# 创建应用用户
sudo useradd -m -d /home/mps-batch -s /bin/bash mps-batch
# 设置目录权限
sudo chown -R mps-batch:mps-batch /opt/mps-batch
sudo chmod 750 /opt/mps-batch
数据库权限控制
-- 创建专用数据库用户
CREATE USER 'mps_batch'@'%' IDENTIFIED BY 'complex_password';
-- 授予必要权限
GRANT SELECT, INSERT, UPDATE ON cdsdb.* TO 'mps_batch'@'%';
FLUSH PRIVILEGES;
故障排查
常见问题
1. Java版本问题
# 检查Java版本
java -version
# 如果版本不对,设置JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
2. 数据库连接问题
# 测试数据库连接
mysql -h your-db-host -u your-username -p
# 检查网络连通性
telnet your-db-host 3306
3. 权限问题
# 检查文件权限
ls -la bin/start.sh
ls -la conf/application.properties
# 修复权限
chmod +x bin/*.sh
chmod 644 conf/application.properties
4. 内存不足
# 查看内存使用
free -m
# 修改Java堆大小(在start.sh中)
JAVA_OPTS="-Xms256m -Xmx512m ..."
日志分析
查看关键日志
# 查看批量执行日志
tail -f logs/batch-execution.log
# 查看应用日志
tail -f logs/mps-batch.log
# 查看错误信息
grep -i error logs/*.log
性能监控
# 监控批量执行时间
grep "总耗时" logs/batch-execution.log
# 监控处理记录数
grep "总处理记录数" logs/batch-execution.log
维护指南
定期维护任务
日志清理
# 清理30天前的日志
find /opt/mps-batch/logs -name "*.log.*" -mtime +30 -delete
性能优化
# 分析慢查询
grep -i "耗时" logs/mps-batch.log | sort -k5 -n
# 监控数据库连接
netstat -an | grep :3306
备份重要文件
# 备份配置文件
tar -czf /backup/mps-batch-config-$(date +%Y%m%d).tar.gz conf/
# 备份可执行文件
cp target/mps-simulation-batch-jar-with-dependencies.jar /backup/
版本升级
升级步骤
- 备份当前版本
- 停止定时任务
- 部署新版本
- 测试功能
- 恢复定时任务
# 停止定时任务
crontab -r
# 备份当前版本
cp -r /opt/mps-batch /backup/mps-batch-$(date +%Y%m%d)
# 部署新版本后测试
./bin/rerun.sh 20250801 BIZ001
# 恢复定时任务
crontab -e
联系支持
如遇到部署问题,请按以下步骤收集信息:
- 收集错误日志
- 记录操作步骤
- 提供环境信息
- 联系技术支持团队
# 收集环境信息
echo "========== 系统信息 =========="
uname -a
cat /etc/os-release
echo "========== Java信息 =========="
java -version
echo "========== 数据库信息 =========="
mysql --version
echo "========== 应用日志 =========="
tail -100 logs/mps-batch.log