diff --git a/doc/资金服务平台 FundPlatform 架构设计文档.md b/doc/资金服务平台 FundPlatform 架构设计文档.md index 4748029..f52a377 100644 --- a/doc/资金服务平台 FundPlatform 架构设计文档.md +++ b/doc/资金服务平台 FundPlatform 架构设计文档.md @@ -1,7 +1,8 @@ # 资金服务平台 (FundPlatform) - 架构设计文档 -> **文档版本**: v1.0 +> **文档版本**: v1.6 > **创建日期**: 2026-02-13 +> **更新日期**: 2026-02-13 > **项目名称**: 资金服务平台 > **项目代号**: fundplatform @@ -3562,6 +3563,197 @@ services: - REDIS_HOST=redis ``` +### 6.3 单机部署配置 + +#### 6.3.1 配置文件架构 + +项目采用**统一配置 + 个性化配置**分离架构: + +``` +fundplatform/ +├── scripts/ +│ └── env.properties # 统一配置(所有服务共用) +├── fund-sys/src/main/resources/ +│ └── service.properties # 个性化配置(每服务独立) +├── fund-gateway/src/main/resources/ +│ └── service.properties +└── ...其他服务 +``` + +| 配置文件 | 位置 | 用途 | 打包后 | +|----------|------|------|--------| +| `env.properties` | scripts/ | 统一配置(所有服务共用) | conf/env.properties | +| `service.properties` | 各服务 src/main/resources/ | 个性化配置(每服务独立) | conf/service.properties | + +**加载顺序**: 先加载 `env.properties`,后加载 `service.properties`(个性化覆盖统一) + +#### 6.3.2 统一配置 (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 + +# 日志配置 +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 +``` + +#### 6.3.3 个性化配置 (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 +``` + +#### 6.3.4 打包目录结构 + +使用 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 # 日志配置 +``` + +#### 6.3.5 多租户部署配置 + +**共享实例配置**: +```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 # 租户ID用于Nacos路由 +``` + +**多实例部署目录**: +``` +/opt/fundplatform/deploy/ +├── fund-sys/ # 共享实例 +│ └── conf/ +│ └── service.properties # INSTANCE_NAME=fund-sys, TENANT_ID= +├── fund-sys-vip001/ # VIP实例1 +│ └── conf/ +│ └── service.properties # INSTANCE_NAME=fund-sys-vip001, TENANT_ID=vip001 +└── fund-sys-vip002/ # VIP实例2 + └── ... +``` + +#### 6.3.6 日志配置集中化 + +日志管理统一由 `logback-spring.xml` 控制,从环境变量读取配置: + +```xml + + + + + + + + +``` + +**注意**: `application.yml` 中不再配置 `logging` 节点,完全由 `logback-spring.xml` 管理。 + +#### 6.3.7 脚本加载逻辑 + +启动脚本统一使用 `load_properties` 函数加载配置: + +```bash +# 加载函数:读取properties文件 +load_properties() { + local file="$1" + if [ -f "$file" ]; then + while IFS='=' read -r key value; do + [[ "$key" =~ ^#.*$ ]] && continue + [[ -z "$key" ]] && continue + key=$(echo "$key" | xargs) + value=$(echo "$value" | xargs) + export "$key=$value" + done < "$file" + fi +} + +# 1. 加载统一配置 +load_properties "${APP_HOME}/conf/env.properties" + +# 2. 加载个性化配置(覆盖统一配置) +load_properties "${APP_HOME}/conf/service.properties" +``` + --- ## 七、监控与运维 @@ -3785,6 +3977,7 @@ public class GlobalExceptionHandler { | v1.3 | 2026-02-13 | 补充 HikariCP 连接池、支持异步场景的 UserContext 封装 | zhangjf | | v1.4 | 2026-02-13 | 补充统一全局上下文 GlobalContext,统筹 tid/uid/uname 获取和异步传递 | zhangjf | | v1.5 | 2026-02-13 | 补充模块通信与 OpenFeign 参数对象管理策略、分层架构职责说明、MyBatis-Plus 使用规范、Controller 与参数校验规范、事务与测试规范及开发规则总览 | zhangjf | +| v1.6 | 2026-02-13 | 补充单机部署配置:配置文件分离架构(env.properties+service.properties)、打包目录结构、多租户部署配置、日志配置集中化、脚本加载逻辑 | zhangjf | ---