fundplatform/doc/单机部署文档.md
zhangjf 645056eaf0 添加服务启动方式说明文档
更新内容:
1. 在单机部署文档中增加 4.8 节,详细说明服务启动方式
2. 在部署运维文档中增加 1.5 节,说明开发环境和生产环境的启动方式

关键约束:
- 明确说明不能使用 java -jar 方式启动(瘦包打包导致)
- 开发环境:使用 mvn spring-boot:run 或 IDE 直接运行
- 生产环境:使用 bin/start.sh 脚本启动
- 解释技术原因:Maven Assembly Plugin 瘦包打包、Manifest 配置缺失、类加载机制

调试建议:
- 开发环境推荐使用 IDE 或 Maven 插件
- 生产环境始终使用启动脚本
- 提供日志查看、进程检查等调试方法
2026-03-01 19:05:04 +08:00

29 KiB
Raw Blame History

资金服务平台单机部署文档

版本: 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

  1. 瘦包打包方式:项目使用 Maven Assembly Plugin 将依赖 JAR 分离到 lib/ 目录
  2. Manifest 配置:主 JAR 包的 MANIFEST.MF 中没有 Class-Path 属性
  3. 类加载机制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

文档结束