docs: 更新架构文档,添加单机部署配置总结

- Agents.md v1.1: 新增配置文件分离架构说明
  - 统一配置 env.properties(所有服务共用)
  - 个性化配置 service.properties(每服务独立)
  - 配置加载顺序说明
  - 打包目录结构
  - 日志配置集中化
  - 多租户部署配置示例

- 单机部署文档 v2.2: 同步更新配置说明
  - 添加配置文件架构章节
  - 添加多租户部署示例
  - 更新打包结构说明
This commit is contained in:
zhangjf 2026-02-22 16:16:53 +08:00
parent 1225d8387e
commit 7909daf8a4
2 changed files with 305 additions and 13 deletions

230
Agents.md
View File

@ -1,7 +1,8 @@
# 资金服务平台 (FundPlatform) - 开发规范 # 资金服务平台 (FundPlatform) - 开发规范
> **文档版本**: v1.0 > **文档版本**: v1.1
> **创建日期**: 2026-02-20 > **创建日期**: 2026-02-20
> **更新日期**: 2026-02-13
> **适用范围**: 本项目所有开发人员 > **适用范围**: 本项目所有开发人员
--- ---
@ -592,7 +593,202 @@ public class CustomerCreateDTO {
## 十三、配置规范 ## 十三、配置规范
### 13.1 Redis配置 ### 13.1 配置文件分离架构
项目采用**统一配置 + 个性化配置**分离架构:
```
fundplatform/
├── scripts/
│ └── env.properties # 统一配置(所有服务共用)
├── fund-sys/src/main/resources/
│ └── service.properties # 个性化配置(每服务独立)
├── fund-gateway/src/main/resources/
│ └── service.properties
└── ...其他服务
```
#### 13.1.1 统一配置 (env.properties)
**位置**: `scripts/env.properties`
**用途**: 所有服务共用的公共配置
**打包后**: `conf/env.properties`
```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
REDIS_TIMEOUT=10000
REDIS_POOL_MAX_ACTIVE=8
REDIS_POOL_MAX_WAIT=-1
REDIS_POOL_MAX_IDLE=8
REDIS_POOL_MIN_IDLE=0
# Hikari连接池配置
HIKARI_MINIMUM_IDLE=5
HIKARI_CONNECTION_TIMEOUT=30000
# Sentinel配置Gateway使用
SENTINEL_DASHBOARD=localhost:8080
SENTINEL_PORT=8719
# 网关限流配置
GATEWAY_RATE_LIMIT_REPLENISH_RATE=100
GATEWAY_RATE_LIMIT_BURST_CAPACITY=200
# 腾讯云COS配置文件服务使用
COS_ENABLED=true
COS_SECRET_ID=your-secret-id
COS_SECRET_KEY=your-secret-key
COS_BUCKET=your-bucket
COS_REGION=ap-beijing
# 文件上传配置
FILE_UPLOAD_MAX_SIZE=50MB
FILE_UPLOAD_MAX_REQUEST_SIZE=100MB
FILE_STORAGE_PATH=./uploads
# 日志配置
LOG_PATH=/datacfs/applogs
LOG_LEVEL_ROOT=INFO
LOG_LEVEL_APP=DEBUG
LOG_PATTERN=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId:-}][%X{spanId:-}] %-5level %logger{50} - %msg%n
# 多租户路由配置
TENANT_ROUTING_ENABLED=true
TENANT_HEADER=X-Tenant-Id
DEFAULT_TENANT_ID=1
```
#### 13.1.2 个性化配置 (service.properties)
**位置**: 各服务 `src/main/resources/service.properties`
**用途**: 服务独立的个性化配置
**打包后**: `conf/service.properties`
```properties
# ============================================
# 服务个性化配置
# 此文件随服务打包,每个服务独立配置
# ============================================
# 服务名称
APP_NAME=fund-sys
# 实例名称多租户场景使用默认与APP_NAME相同
# 多租户示例fund-sys-shared, fund-sys-vip001
INSTANCE_NAME=${APP_NAME}
# 租户标识多租户场景使用用于Nacos元数据路由
# 空值=共享实例,有值=VIP专属实例
TENANT_ID=
# 服务端口可覆盖application.yml中的配置
# SERVER_PORT=8100
```
#### 13.1.3 配置加载顺序
启动脚本按以下顺序加载配置(后加载覆盖先加载):
```bash
# 1. 加载统一配置
load_properties "${APP_HOME}/conf/env.properties"
# 2. 加载个性化配置(覆盖同名参数)
load_properties "${APP_HOME}/conf/service.properties"
```
### 13.2 打包目录结构
使用Maven Assembly打包后的目录结构
```
fund-sys/ # 服务根目录
├── bin/ # 脚本目录
│ ├── start.sh # 启动脚本
│ ├── stop.sh # 停止脚本
│ ├── restart.sh # 重启脚本
│ └── status.sh # 状态查看脚本
├── lib/ # 依赖JAR目录
│ └── fund-sys.jar # 服务JAR包
└── conf/ # 配置文件目录
├── env.properties # 统一配置
├── service.properties # 个性化配置
├── application.yml # 主配置
├── bootstrap.yml # 启动配置
└── logback-spring.xml # 日志配置
```
### 13.3 日志配置集中化
日志管理统一由 `logback-spring.xml` 控制,从环境变量读取配置:
```xml
<!-- 从环境变量读取配置 -->
<springProperty scope="context" name="APP_NAME" source="spring.application.name"/>
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="/datacfs/applogs"/>
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="logging.level.root" defaultValue="INFO"/>
<springProperty scope="context" name="LOG_LEVEL_APP" source="logging.level.app" defaultValue="DEBUG"/>
<!-- 日志文件路径 -->
<property name="LOG_FILE" value="${LOG_PATH}/${APP_NAME}"/>
```
**application.yml 中不再配置 logging 节点**,完全由 logback-spring.xml 管理。
### 13.4 多租户部署配置
#### 13.4.1 共享实例配置
```properties
# service.properties
APP_NAME=fund-sys
INSTANCE_NAME=fund-sys
TENANT_ID= # 空值表示共享实例
```
#### 13.4.2 VIP专属实例配置
```properties
# service.properties
APP_NAME=fund-sys
INSTANCE_NAME=fund-sys-vip001 # 实例名称带租户标识
TENANT_ID=vip001 # 租户ID用于Nacos路由
```
#### 13.4.3 多实例部署目录
```
/opt/fundplatform/deploy/
├── fund-sys/ # 共享实例
│ ├── bin/
│ ├── lib/
│ └── conf/
│ └── service.properties # INSTANCE_NAME=fund-sys, TENANT_ID=
├── fund-sys-vip001/ # VIP实例1
│ ├── bin/
│ ├── lib/
│ └── conf/
│ └── service.properties # INSTANCE_NAME=fund-sys-vip001, TENANT_ID=vip001
└── fund-sys-vip002/ # VIP实例2
└── ...
```
### 13.5 Redis配置
所有服务统一使用 **database 0** 所有服务统一使用 **database 0**
@ -685,15 +881,35 @@ public class TokenAuthFilter implements GlobalFilter {
## 十五、附录 ## 十五、附录
### 15.1 环境变量 ### 15.1 环境变量汇总
#### 统一配置变量 (env.properties)
| 变量名 | 说明 | 默认值 | | 变量名 | 说明 | 默认值 |
|--------|------|--------| |--------|------|--------|
| `TENANT_ID` | 租户ID | - | | `NACOS_SERVER_ADDR` | Nacos服务地址 | localhost:8848 |
| `MYSQL_HOST` | MySQL地址 | localhost | | `NACOS_NAMESPACE` | Nacos命名空间 | fund-platform |
| `MYSQL_PORT` | MySQL端口 | 3306 | | `NACOS_GROUP` | Nacos分组 | DEFAULT_GROUP |
| `NACOS_USERNAME` | Nacos用户名 | nacos |
| `NACOS_PASSWORD` | Nacos密码 | nacos |
| `REDIS_HOST` | Redis地址 | localhost | | `REDIS_HOST` | Redis地址 | localhost |
| `NACOS_ADDR` | Nacos地址 | localhost:8848 | | `REDIS_PORT` | Redis端口 | 6379 |
| `REDIS_PASSWORD` | Redis密码 | zjf@123456 |
| `REDIS_DATABASE` | Redis数据库 | 0 |
| `LOG_PATH` | 日志路径 | /datacfs/applogs |
| `LOG_LEVEL_ROOT` | 根日志级别 | INFO |
| `LOG_LEVEL_APP` | 应用日志级别 | DEBUG |
| `TENANT_ROUTING_ENABLED` | 多租户路由开关 | true |
| `DEFAULT_TENANT_ID` | 默认租户ID | 1 |
#### 个性化配置变量 (service.properties)
| 变量名 | 说明 | 备注 |
|--------|------|--------|
| `APP_NAME` | 服务名称 | 对应JAR文件名 |
| `INSTANCE_NAME` | 实例名称 | 多租户场景区分实例 |
| `TENANT_ID` | 租户标识 | 空值=共享实例,有值=VIP实例 |
| `SERVER_PORT` | 服务端口 | 可选覆盖application.yml |
### 15.2 访问地址 ### 15.2 访问地址

View File

@ -1,7 +1,7 @@
# 资金服务平台单机部署文档 # 资金服务平台单机部署文档
> 版本: v2.1 > 版本: v2.2
> 更新日期: 2026-02-22 > 更新日期: 2026-02-13
> 作者: zhangjf > 作者: zhangjf
--- ---
@ -391,11 +391,12 @@ fund-sys/
│ ├── start.sh # 启动脚本(自动识别服务名) │ ├── start.sh # 启动脚本(自动识别服务名)
│ ├── stop.sh # 停止脚本 │ ├── stop.sh # 停止脚本
│ ├── restart.sh # 重启脚本 │ ├── restart.sh # 重启脚本
│ ├── status.sh # 状态查看脚本 │ └── status.sh # 状态查看脚本
│ └── env.properties # 环境变量配置模板
├── lib/ # 依赖JAR目录 ├── lib/ # 依赖JAR目录
│ └── fund-sys.jar # 服务JAR包包含所有依赖 │ └── fund-sys.jar # 服务JAR包包含所有依赖
└── conf/ # 配置文件目录排除docker相关配置 └── conf/ # 配置文件目录排除docker相关配置
├── env.properties # 统一配置(所有服务共用)
├── service.properties # 个性化配置(每服务独立)
├── application.yml # 主配置文件 ├── application.yml # 主配置文件
├── application-*.yml # 环境配置文件 ├── application-*.yml # 环境配置文件
└── logback-spring.xml # 日志配置文件 └── logback-spring.xml # 日志配置文件
@ -425,7 +426,8 @@ fundplatform/
**Assembly配置特点** **Assembly配置特点**
- 脚本从项目根目录 `scripts/` 引用,避免重复 - 脚本从项目根目录 `scripts/` 引用,避免重复
- 配置文件排除 `application-docker.yml` 等Docker相关配置 - 配置文件排除 `application-docker.yml` 等Docker相关配置
- 脚本自动从目录名推断服务名称,无需硬编码 - 统一配置 `env.properties` 和个性化配置 `service.properties` 分离
- 个性化配置覆盖统一配置,支持多租户部署
#### 4.2.4 前端打包 #### 4.2.4 前端打包
@ -708,7 +710,81 @@ redis-cli -a 'zjf@123456' ping
## 七、附录 ## 七、附录
### 7.1 环境变量配置 ### 7.1 配置文件说明
#### 7.1.1 配置文件架构
项目采用**统一配置 + 个性化配置**分离架构:
| 配置文件 | 位置 | 用途 |
|----------|------|------|
| `env.properties` | scripts/ | 统一配置(所有服务共用) |
| `service.properties` | 各服务 src/main/resources/ | 个性化配置(每服务独立) |
**加载顺序**: 先加载 `env.properties`,后加载 `service.properties`(个性化覆盖统一)
#### 7.1.2 统一配置 (env.properties)
```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)
```properties
# /opt/fundplatform/deploy/fund-sys/conf/service.properties
# 服务名称
APP_NAME=fund-sys
# 实例名称(多租户场景)
INSTANCE_NAME=fund-sys
# 租户标识(空值=共享实例,有值=VIP实例
TENANT_ID=
```
### 7.2 多租户部署示例
#### 共享实例
```properties
# service.properties
APP_NAME=fund-sys
INSTANCE_NAME=fund-sys
TENANT_ID=
```
#### VIP专属实例
```properties
# service.properties
APP_NAME=fund-sys
INSTANCE_NAME=fund-sys-vip001
TENANT_ID=vip001
```
### 7.3 环境变量配置(旧版兼容)
```bash ```bash
# /opt/fundplatform/config/env.properties # /opt/fundplatform/config/env.properties