更新内容: 1. 在单机部署文档中增加 4.8 节,详细说明服务启动方式 2. 在部署运维文档中增加 1.5 节,说明开发环境和生产环境的启动方式 关键约束: - 明确说明不能使用 java -jar 方式启动(瘦包打包导致) - 开发环境:使用 mvn spring-boot:run 或 IDE 直接运行 - 生产环境:使用 bin/start.sh 脚本启动 - 解释技术原因:Maven Assembly Plugin 瘦包打包、Manifest 配置缺失、类加载机制 调试建议: - 开发环境推荐使用 IDE 或 Maven 插件 - 生产环境始终使用启动脚本 - 提供日志查看、进程检查等调试方法
29 KiB
29 KiB
资金服务平台单机部署文档
版本: v2.2
更新日期: 2026-02-13
作者: zhangjf
一、部署概述
1.1 部署架构
┌─────────────────────────────────────────────────────────────────┐
│ 单机部署架构 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 前端服务 │ │
│ │ fund-admin (/fadmin/) fund-mobile (/fmobile/) │ │
│ └─────────────────────────┬───────────────────────────────┘ │
│ │ │
│ ┌─────────────────────────▼───────────────────────────────┐ │
│ │ Gateway (8000) │ │
│ │ API网关 + Token验证 │ │
│ └─────────────────────────┬───────────────────────────────┘ │
│ │ │
│ ┌─────────────────────────┼───────────────────────────────┐ │
│ │ │ │ │
│ │ ┌────────┬────────┬───┴───┬────────┬────────┐ │ │
│ │ ▼ ▼ ▼ ▼ ▼ ▼ │ │
│ │ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │ │
│ │ │ sys │ │ cust │ │ proj │ │ req │ │ exp │ │rcpt │ │ │
│ │ │:8100 │ │:8200 │ │:8300 │ │:8400 │ │:8500 │ │:8600 │ │ │
│ │ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ │ │
│ │ │ │
│ │ ┌──────┐ ┌──────┐ │ │
│ │ │report│ │ file │ │ │
│ │ │:8700 │ │:8800 │ │ │
│ │ └──────┘ └──────┘ │ │
│ │ │ │
│ │ 业务微服务集群 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 基础设施服务 │ │
│ │ MySQL(3306) Redis(6379) Nacos(8848/8048) │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
1.2 服务清单
| 服务名称 | 端口 | 说明 |
|---|---|---|
| fund-gateway | 8000 | API网关 |
| fund-sys | 8100 | 系统管理服务 |
| fund-cust | 8200 | 客户管理服务 |
| fund-proj | 8300 | 项目管理服务 |
| fund-req | 8400 | 需求工单服务 |
| fund-exp | 8500 | 支出管理服务 |
| fund-receipt | 8600 | 收款管理服务 |
| fund-report | 8700 | 报表服务 |
| fund-file | 8800 | 文件服务 |
1.3 目录结构
/opt/fundplatform/ # 应用根目录
├── deploy/ # 部署目录
│ ├── fund-gateway/ # Gateway服务
│ │ ├── bin/ # 脚本目录
│ │ │ ├── start.sh # 启动脚本
│ │ │ ├── stop.sh # 停止脚本
│ │ │ ├── restart.sh # 重启脚本
│ │ │ └── status.sh # 状态查看脚本
│ │ ├── lib/ # 依赖JAR目录
│ │ │ └── fund-gateway.jar # 服务JAR包
│ │ └── conf/ # 配置文件目录
│ │ └── application.yml # 服务配置文件
│ ├── fund-sys/ # 系统服务
│ │ ├── bin/
│ │ ├── lib/
│ │ └── conf/
│ ├── fund-cust/ # 客户服务
│ ├── fund-proj/ # 项目服务
│ ├── fund-req/ # 需求服务
│ ├── fund-exp/ # 支出服务
│ ├── fund-receipt/ # 收款服务
│ ├── fund-report/ # 报表服务
│ ├── fund-file/ # 文件服务
│ ├── start-all.sh # 一键启动所有服务
│ ├── stop-all.sh # 一键停止所有服务
│ ├── restart-all.sh # 一键重启所有服务
│ └── status.sh # 查看所有服务状态
├── packages/ # 发布包目录
│ ├── fund-gateway.tar.gz # Gateway服务发布包
│ ├── fund-sys.tar.gz # 系统服务发布包
│ ├── fund-cust.tar.gz # 客户服务发布包
│ ├── fund-proj.tar.gz # 项目服务发布包
│ ├── fund-req.tar.gz # 需求服务发布包
│ ├── fund-exp.tar.gz # 支出服务发布包
│ ├── fund-receipt.tar.gz # 收款服务发布包
│ ├── fund-report.tar.gz # 报表服务发布包
│ ├── fund-file.tar.gz # 文件服务发布包
│ ├── fund-admin.zip # 管理后台前端发布包
│ └── fund-mobile.zip # 移动端H5发布包
├── sql/ # 数据库脚本
│ ├── fund_platform_schema.sql # 表结构
│ └── fund_platform_init.sql # 初始化数据
└── config/ # 公共配置
└── env.properties # 环境变量配置
/datacfs/applogs/ # 日志根目录
├── fund-gateway/ # Gateway日志
│ ├── info.log
│ ├── error.log
│ └── aop.log
├── fund-sys/ # 系统服务日志
├── fund-cust/ # 客户服务日志
├── fund-proj/ # 项目服务日志
├── fund-req/ # 需求服务日志
├── fund-exp/ # 支出服务日志
├── fund-receipt/ # 收款服务日志
├── fund-report/ # 报表服务日志
└── fund-file/ # 文件服务日志
二、环境安装与配置
2.1 环境要求
| 组件 | 版本要求 | 说明 |
|---|---|---|
| 操作系统 | CentOS 7+ / Ubuntu 18+ | Linux服务器 |
| JDK | 21+ | Java运行环境 |
| MySQL | 8.0+ | 数据库 |
| Redis | 7.0+ | 缓存服务 |
| Nacos | 3.0+ | 服务注册中心 |
2.2 安装 JDK 21
# 方式一:使用包管理器安装 (Ubuntu)
sudo apt update
sudo apt install openjdk-21-jdk
# 方式二:使用包管理器安装 (CentOS)
sudo yum install java-21-openjdk java-21-openjdk-devel
# 方式三:手动安装
cd /opt
wget https://download.java.net/openjdk/jdk21/ri/openjdk-21+35_linux-x64_bin.tar.gz
tar -xzf openjdk-21+35_linux-x64_bin.tar.gz
ln -s /opt/jdk-21 /opt/java
# 配置环境变量
cat >> /etc/profile << 'EOF'
export JAVA_HOME=/opt/java
export PATH=$JAVA_HOME/bin:$PATH
EOF
source /etc/profile
# 验证安装
java -version
2.3 安装 MySQL 8.0
# Ubuntu 安装
sudo apt update
sudo apt install mysql-server-8.0
# CentOS 安装
sudo yum install mysql-server
# 启动MySQL
sudo systemctl start mysql
sudo systemctl enable mysql
# 配置root密码
sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'zjf@123456';"
# 创建数据库用户(可选,用于应用连接)
sudo mysql -u root -p'zjf@123456' << 'EOF'
CREATE USER 'fund_user'@'%' IDENTIFIED BY 'Fund@123456';
GRANT ALL PRIVILEGES ON *.* TO 'fund_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EOF
2.4 安装 Redis 7.0
# Ubuntu 安装
sudo apt update
sudo apt install redis-server
# CentOS 安装 (需要EPEL源)
sudo yum install epel-release
sudo yum install redis
# 配置密码
sudo sed -i 's/# requirepass foobared/requirepass zjf@123456/' /etc/redis/redis.conf
# 配置持久化
sudo sed -i 's/appendonly no/appendonly yes/' /etc/redis/redis.conf
# 启动Redis
sudo systemctl restart redis
sudo systemctl enable redis
# 验证安装
redis-cli -a 'zjf@123456' ping
2.5 安装 Nacos 3.0
# 下载Nacos
cd /opt
wget https://github.com/alibaba/nacos/releases/download/3.0.0/nacos-server-3.0.0.tar.gz
tar -xzf nacos-server-3.0.0.tar.gz
mv nacos nacos-server
# 配置端口(可选,默认8848)
cd /opt/nacos-server/conf
sed -i 's/server.port=8848/server.port=8848/' application.properties
# 配置MySQL持久化(推荐生产环境使用)
cat >> application.properties << 'EOF'
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai
db.user.0=root
db.password.0=zjf@123456
EOF
# 创建Nacos数据库
mysql -u root -p'zjf@123456' << 'EOF'
CREATE DATABASE IF NOT EXISTS nacos_config CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
EOF
# 导入Nacos表结构
mysql -u root -p'zjf@123456' nacos_config < /opt/nacos-server/conf/mysql-schema.sql
# 启动Nacos(单机模式)
cd /opt/nacos-server/bin
sh startup.sh -m standalone
# 查看启动日志
tail -f /opt/nacos-server/logs/start.out
# 访问控制台
# http://服务器IP:8848/nacos
# 默认账号密码:nacos / nacos
2.6 创建Nacos命名空间
# 登录Nacos控制台或使用API创建命名空间
curl -X POST 'http://localhost:8848/nacos/v1/console/namespaces' \
-d 'customNamespaceId=fund-platform' \
-d 'namespaceName=资金服务平台' \
-d 'namespaceDesc=资金服务平台命名空间'
三、数据库创建和初始化
3.1 创建数据库
# 登录MySQL
mysql -u root -p'zjf@123456'
# 执行创建数据库脚本
-- 创建各服务数据库
CREATE DATABASE IF NOT EXISTS fund_sys
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE IF NOT EXISTS fund_cust
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE IF NOT EXISTS fund_proj
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE IF NOT EXISTS fund_req
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE IF NOT EXISTS fund_exp
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE IF NOT EXISTS fund_receipt
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE IF NOT EXISTS fund_report
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE IF NOT EXISTS fund_file
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 查看数据库
SHOW DATABASES;
3.2 初始化表结构
# 上传SQL脚本到服务器
cd /opt/fundplatform
mkdir -p sql
# 执行表结构脚本
mysql -u root -p'zjf@123456' fund_sys < sql/fund_sys_schema.sql
mysql -u root -p'zjf@123456' fund_cust < sql/fund_cust_schema.sql
mysql -u root -p'zjf@123456' fund_proj < sql/fund_proj_schema.sql
mysql -u root -p'zjf@123456' fund_req < sql/fund_req_schema.sql
mysql -u root -p'zjf@123456' fund_exp < sql/fund_exp_schema.sql
mysql -u root -p'zjf@123456' fund_receipt < sql/fund_receipt_schema.sql
mysql -u root -p'zjf@123456' fund_report < sql/fund_report_schema.sql
mysql -u root -p'zjf@123456' fund_file < sql/fund_file_schema.sql
# 执行初始化数据脚本
mysql -u root -p'zjf@123456' fund_sys < sql/fund_sys_init.sql
四、服务部署
4.1 创建部署目录
# 创建应用目录
mkdir -p /opt/fundplatform/deploy
mkdir -p /opt/fundplatform/sql
mkdir -p /opt/fundplatform/config
# 创建日志目录
mkdir -p /datacfs/applogs/fund-gateway
mkdir -p /datacfs/applogs/fund-sys
mkdir -p /datacfs/applogs/fund-cust
mkdir -p /datacfs/applogs/fund-proj
mkdir -p /datacfs/applogs/fund-req
mkdir -p /datacfs/applogs/fund-exp
mkdir -p /datacfs/applogs/fund-receipt
mkdir -p /datacfs/applogs/fund-report
mkdir -p /datacfs/applogs/fund-file
4.2 编译打包
项目使用 Maven Assembly Plugin 实现标准化打包,每个服务打包为一个独立的 tar.gz 文件。
4.2.1 后端服务打包
# 在开发机上编译打包
mvn clean package -DskipTests
# 打包结果(位于各模块的target目录)
# fund-gateway/target/fund-gateway.tar.gz
# fund-sys/target/fund-sys.tar.gz
# fund-cust/target/fund-cust.tar.gz
# fund-proj/target/fund-proj.tar.gz
# fund-req/target/fund-req.tar.gz
# fund-exp/target/fund-exp.tar.gz
# fund-receipt/target/fund-receipt.tar.gz
# fund-report/target/fund-report.tar.gz
# fund-file/target/fund-file.tar.gz
4.2.2 打包结构说明
每个服务的 tar.gz 包解压后包含以下目录结构:
fund-sys/
├── bin/ # 脚本目录(统一从项目根目录scripts引用)
│ ├── start.sh # 启动脚本(自动识别服务名)
│ ├── stop.sh # 停止脚本
│ ├── restart.sh # 重启脚本
│ └── status.sh # 状态查看脚本
├── lib/ # 依赖JAR目录
│ └── fund-sys.jar # 服务JAR包(包含所有依赖)
└── conf/ # 配置文件目录(排除docker相关配置)
├── env.properties # 统一配置(所有服务共用)
├── service.properties # 个性化配置(每服务独立)
├── application.yml # 主配置文件
├── application-*.yml # 环境配置文件
└── logback-spring.xml # 日志配置文件
4.2.3 Assembly打包配置
项目使用统一的Assembly配置,脚本统一管理在项目根目录:
fundplatform/
├── assembly/
│ └── assembly.xml # 统一的Assembly配置
├── scripts/ # 统一的脚本目录
│ ├── start.sh # 启动脚本(自动识别服务名)
│ ├── stop.sh # 停止脚本
│ ├── restart.sh # 重启脚本
│ ├── status.sh # 状态查看脚本
│ ├── env.properties # 环境变量配置模板
│ ├── start-all.sh # 一键启动所有服务
│ ├── stop-all.sh # 一键停止所有服务
│ ├── restart-all.sh # 一键重启所有服务
│ └── status-all.sh # 查看所有服务状态
└── ...各服务模块
Assembly配置特点:
- 脚本从项目根目录
scripts/引用,避免重复 - 配置文件排除
application-docker.yml等Docker相关配置 - 统一配置
env.properties和个性化配置service.properties分离 - 个性化配置覆盖统一配置,支持多租户部署
4.2.4 前端打包
前端项目采用 Nginx 子路径部署方式:
- 管理后台 (fund-admin): 部署路径
/fadmin/ - 移动端H5 (fund-mobile): 部署路径
/fmobile/ - API网关前缀:
/fund
# 使用部署脚本打包(推荐)
./scripts/deploy-frontend-nginx.sh admin # 管理后台
./scripts/deploy-frontend-nginx.sh mobile # 移动端H5
# 或手动打包
# 管理后台打包
cd fund-admin
npm install
npm run build
# 生成 dist 目录,打包为 fund-admin.zip
zip -r fund-admin.zip dist/
# 移动端H5打包
cd fund-mobile
npm install
npm run build
# 生成 dist 目录,打包为 fund-mobile.zip
zip -r fund-mobile.zip dist/
4.3 上传部署文件
# 创建发布包目录
mkdir -p /opt/fundplatform/packages
# 上传后端服务发布包
scp fund-gateway/target/fund-gateway.tar.gz user@server:/opt/fundplatform/packages/
scp fund-sys/target/fund-sys.tar.gz user@server:/opt/fundplatform/packages/
scp fund-cust/target/fund-cust.tar.gz user@server:/opt/fundplatform/packages/
scp fund-proj/target/fund-proj.tar.gz user@server:/opt/fundplatform/packages/
scp fund-req/target/fund-req.tar.gz user@server:/opt/fundplatform/packages/
scp fund-exp/target/fund-exp.tar.gz user@server:/opt/fundplatform/packages/
scp fund-receipt/target/fund-receipt.tar.gz user@server:/opt/fundplatform/packages/
scp fund-report/target/fund-report.tar.gz user@server:/opt/fundplatform/packages/
scp fund-file/target/fund-file.tar.gz user@server:/opt/fundplatform/packages/
# 上传前端发布包
scp fund-admin.zip user@server:/opt/fundplatform/packages/
scp fund-mobile.zip user@server:/opt/fundplatform/packages/
4.4 解压部署
# 解压后端服务到deploy目录
cd /opt/fundplatform/packages
tar -xzf fund-gateway.tar.gz -C /opt/fundplatform/deploy/
tar -xzf fund-sys.tar.gz -C /opt/fundplatform/deploy/
tar -xzf fund-cust.tar.gz -C /opt/fundplatform/deploy/
tar -xzf fund-proj.tar.gz -C /opt/fundplatform/deploy/
tar -xzf fund-req.tar.gz -C /opt/fundplatform/deploy/
tar -xzf fund-exp.tar.gz -C /opt/fundplatform/deploy/
tar -xzf fund-receipt.tar.gz -C /opt/fundplatform/deploy/
tar -xzf fund-report.tar.gz -C /opt/fundplatform/deploy/
tar -xzf fund-file.tar.gz -C /opt/fundplatform/deploy/
# 解压前端发布包
mkdir -p /opt/fundplatform/web
unzip fund-admin-nginx.zip -d /opt/fundplatform/web/admin/
unzip fund-mobile-nginx.zip -d /opt/fundplatform/web/mobile/
# 复制Nginx配置
cp /opt/fundplatform/web/admin/nginx.conf /etc/nginx/conf.d/fadmin.conf
cp /opt/fundplatform/web/mobile/nginx.conf /etc/nginx/conf.d/fmobile.conf
4.5 Nginx 配置
前端采用子路径部署,Nginx 配置示例:
# /etc/nginx/conf.d/fundplatform.conf
server {
listen 80;
server_name localhost;
# 管理后台 (部署路径: /fadmin/)
location /fadmin/ {
alias /opt/fundplatform/web/admin/;
try_files $uri $uri/ /fadmin/index.html;
}
# 移动端H5 (部署路径: /fmobile/)
location /fmobile/ {
alias /opt/fundplatform/web/mobile/;
try_files $uri $uri/ /fmobile/index.html;
}
# API代理 (网关前缀: /fund)
location /fund/ {
proxy_pass http://127.0.0.1:8000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
访问地址:
- 管理后台:
http://服务器IP/fadmin/ - 移动端H5:
http://服务器IP/fmobile/
# 上传一键管理脚本到deploy目录(在解压服务包后执行)
# 一键管理脚本位于项目根目录scripts目录,需要单独上传
cp scripts/start-all.sh /opt/fundplatform/deploy/
cp scripts/stop-all.sh /opt/fundplatform/deploy/
cp scripts/restart-all.sh /opt/fundplatform/deploy/
cp scripts/status-all.sh /opt/fundplatform/deploy/
4.6 配置文件修改
各服务配置文件需要根据实际环境修改以下配置:
# MySQL配置
spring:
datasource:
url: jdbc:mysql://数据库IP:3306/fund_sys?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
username: fund_user
password: Fund@123456
# Redis配置
data:
redis:
host: Redis服务器IP
port: 6379
password: zjf@123456
# Nacos配置
cloud:
nacos:
discovery:
server-addr: Nacos服务器IP:8848
namespace: fund-platform
4.7 服务管理脚本
每个服务的 bin 目录下包含以下脚本:
| 脚本 | 说明 |
|---|---|
| start.sh | 启动服务 |
| stop.sh | 停止服务 |
| restart.sh | 重启服务 |
| status.sh | 查看服务状态 |
4.6.1 单服务管理
# 启动单个服务
/opt/fundplatform/deploy/fund-sys/bin/start.sh
# 停止单个服务
/opt/fundplatform/deploy/fund-sys/bin/stop.sh
# 重启单个服务
/opt/fundplatform/deploy/fund-sys/bin/restart.sh
# 查看服务状态
/opt/fundplatform/deploy/fund-sys/bin/status.sh
4.6.2 一键管理所有服务
# 一键启动所有服务
/opt/fundplatform/deploy/start-all.sh
# 一键停止所有服务
/opt/fundplatform/deploy/stop-all.sh
# 一键重启所有服务
/opt/fundplatform/deploy/restart-all.sh
# 查看所有服务状态
/opt/fundplatform/deploy/status.sh
4.8 服务启动方式说明(重要)
⚠️ 重要提示: 为了打包发布的需要,每个服务 JAR 都采用瘦包方式打包(依赖分离),因此不能使用 java -jar fund*.jar 方式执行。
4.8.1 正确的启动方式
方式一:使用启动脚本(推荐)
# 使用服务自带的启动脚本
cd /opt/fundplatform/deploy/fund-sys
./bin/start.sh
# 或使用一键启动脚本
cd /opt/fundplatform/deploy
./start-all.sh
方式二:使用 Maven Spring Boot 插件
# 开发环境下,可以使用 Maven 插件启动
cd fund-sys
mvn spring-boot:run
方式三:手动指定类路径(不推荐)
# 如果必须手动启动,需要指定完整的类路径
cd /opt/fundplatform/deploy/fund-sys
java -cp "lib/*:conf/" com.fundplatform.sys.SysApplication
4.8.2 错误的启动方式
❌ 错误示例:
# 以下方式是错误的,会导致 ClassNotFoundException
cd /opt/fundplatform/deploy/fund-sys/lib
java -jar fund-sys.jar
# 或在开发环境
cd fund-sys/target
java -jar fund-sys-0.0.1-SNAPSHOT.jar
4.8.3 为什么不能使用 java -jar?
- 瘦包打包方式:项目使用 Maven Assembly Plugin 将依赖 JAR 分离到
lib/目录 - Manifest 配置:主 JAR 包的 MANIFEST.MF 中没有 Class-Path 属性
- 类加载机制:JVM 无法自动找到
lib/目录下的依赖
4.8.4 调试建议
开发环境调试:
- 使用 IDE 直接运行 Application 类
- 或使用
mvn spring-boot:run命令 - 避免使用
java -jar命令
生产环境调试:
- 始终使用
bin/start.sh脚本启动 - 查看日志:
tail -f /datacfs/applogs/fund-sys/info.log - 检查进程:
ps aux | grep fund-sys - 查看端口:
netstat -tlnp | grep 8100
五、部署操作指南
5.1 首次部署
# 1. 创建目录
mkdir -p /opt/fundplatform/deploy
mkdir -p /datacfs/applogs
# 2. 上传部署包
# 将deploy目录上传到/opt/fundplatform/
# 3. 赋予执行权限
chmod +x /opt/fundplatform/deploy/*/start.sh
chmod +x /opt/fundplatform/deploy/*/stop.sh
chmod +x /opt/fundplatform/deploy/*/restart.sh
chmod +x /opt/fundplatform/deploy/*.sh
# 4. 修改配置文件
# 编辑各服务的application.yml,配置数据库、Redis、Nacos地址
# 5. 启动所有服务
/opt/fundplatform/deploy/start-all.sh
# 6. 检查服务状态
/opt/fundplatform/deploy/status.sh
5.2 服务管理
# 启动单个服务
/opt/fundplatform/deploy/fund-sys/start.sh
# 停止单个服务
/opt/fundplatform/deploy/fund-sys/stop.sh
# 重启单个服务
/opt/fundplatform/deploy/fund-sys/restart.sh
# 一键启动所有服务
/opt/fundplatform/deploy/start-all.sh
# 一键停止所有服务
/opt/fundplatform/deploy/stop-all.sh
# 一键重启所有服务
/opt/fundplatform/deploy/restart-all.sh
# 查看服务状态
/opt/fundplatform/deploy/status.sh
5.3 日志查看
# 查看实时日志
tail -f /datacfs/applogs/fund-sys/info.log
# 查看错误日志
tail -f /datacfs/applogs/fund-sys/error.log
# 查看API请求日志
tail -f /datacfs/applogs/fund-sys/aop.log
# 查看所有服务日志
tail -f /datacfs/applogs/*/info.log
5.4 服务更新
# 1. 备份旧版本
cp /opt/fundplatform/deploy/fund-sys/fund-sys.jar /opt/fundplatform/deploy/fund-sys/fund-sys.jar.bak
# 2. 上传新版本JAR包
scp fund-sys.jar user@server:/opt/fundplatform/deploy/fund-sys/
# 3. 重启服务
/opt/fundplatform/deploy/fund-sys/restart.sh
# 4. 检查服务状态
/opt/fundplatform/deploy/status.sh
tail -f /datacfs/applogs/fund-sys/info.log
六、常见问题处理
6.1 服务无法启动
# 检查端口占用
netstat -tlnp | grep 8100
# 检查Java进程
ps -ef | grep fund-sys
# 查看启动日志
tail -100 /datacfs/applogs/fund-sys/info.log
# 检查配置文件
cat /opt/fundplatform/deploy/fund-sys/application.yml
6.2 服务注册失败
# 检查Nacos是否运行
curl http://localhost:8848/nacos/v1/console/health/readiness
# 检查服务注册状态
curl http://localhost:8848/nacos/v1/ns/instance/list?serviceName=fund-sys&namespaceId=fund-platform
# 检查Nacos命名空间
curl http://localhost:8848/nacos/v1/console/namespaces
6.3 数据库连接失败
# 检查MySQL是否运行
systemctl status mysql
# 测试数据库连接
mysql -h localhost -u fund_user -p'Fund@123456' -e "SELECT 1"
# 检查数据库是否存在
mysql -u root -p'zjf@123456' -e "SHOW DATABASES LIKE 'fund_%'"
6.4 Redis连接失败
# 检查Redis是否运行
systemctl status redis
# 测试Redis连接
redis-cli -a 'zjf@123456' ping
七、附录
7.1 配置文件说明
7.1.1 配置文件架构
项目采用统一配置 + 个性化配置分离架构:
| 配置文件 | 位置 | 用途 |
|---|---|---|
env.properties |
scripts/ | 统一配置(所有服务共用) |
service.properties |
各服务 src/main/resources/ | 个性化配置(每服务独立) |
加载顺序: 先加载 env.properties,后加载 service.properties(个性化覆盖统一)
7.1.2 统一配置 (env.properties)
# /opt/fundplatform/deploy/fund-sys/conf/env.properties
# Nacos配置
NACOS_SERVER_ADDR=localhost:8848
NACOS_NAMESPACE=fund-platform
NACOS_GROUP=DEFAULT_GROUP
NACOS_USERNAME=nacos
NACOS_PASSWORD=nacos
# Redis配置
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=zjf@123456
REDIS_DATABASE=0
# 日志配置
LOG_PATH=/datacfs/applogs
LOG_LEVEL_ROOT=INFO
LOG_LEVEL_APP=DEBUG
# 多租户路由配置
TENANT_ROUTING_ENABLED=true
DEFAULT_TENANT_ID=1
7.1.3 个性化配置 (service.properties)
# /opt/fundplatform/deploy/fund-sys/conf/service.properties
# 服务名称
APP_NAME=fund-sys
# 实例名称(多租户场景)
INSTANCE_NAME=fund-sys
# 租户标识(空值=共享实例,有值=VIP实例)
TENANT_ID=
7.2 多租户部署示例
共享实例
# service.properties
APP_NAME=fund-sys
INSTANCE_NAME=fund-sys
TENANT_ID=
VIP专属实例
# service.properties
APP_NAME=fund-sys
INSTANCE_NAME=fund-sys-vip001
TENANT_ID=vip001
7.3 环境变量配置(旧版兼容)
# /opt/fundplatform/config/env.properties
# MySQL配置
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USERNAME=fund_user
MYSQL_PASSWORD=Fund@123456
# Redis配置
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=zjf@123456
# Nacos配置
NACOS_HOST=localhost
NACOS_PORT=8848
NACOS_NAMESPACE=fund-platform
NACOS_USERNAME=nacos
NACOS_PASSWORD=nacos
7.2 端口清单
| 服务 | 端口 | 协议 |
|---|---|---|
| MySQL | 3306 | TCP |
| Redis | 6379 | TCP |
| Nacos API | 8848 | HTTP |
| Nacos 控制台 | 8048 | HTTP |
| fund-gateway | 8000 | HTTP |
| fund-sys | 8100 | HTTP |
| fund-cust | 8200 | HTTP |
| fund-proj | 8300 | HTTP |
| fund-req | 8400 | HTTP |
| fund-exp | 8500 | HTTP |
| fund-receipt | 8600 | HTTP |
| fund-report | 8700 | HTTP |
| fund-file | 8800 | HTTP |
7.3 访问地址
| 服务 | 地址 |
|---|---|
| API网关 | http://服务器IP:8000 |
| Nacos控制台 | http://服务器IP:8848/nacos |
| 管理后台 | http://服务器IP:80 |
7.4 默认账号
| 系统 | 用户名 | 密码 |
|---|---|---|
| Nacos | nacos | nacos |
| 管理后台 | admin | 123456 |
文档结束