diff --git a/Agents.md b/Agents.md index b98aac2..64e4d0d 100644 --- a/Agents.md +++ b/Agents.md @@ -1,7 +1,8 @@ # 资金服务平台 (FundPlatform) - 开发规范 -> **文档版本**: v1.0 +> **文档版本**: v1.1 > **创建日期**: 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 + + + + + + + + +``` + +**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**: @@ -685,15 +881,35 @@ public class TokenAuthFilter implements GlobalFilter { ## 十五、附录 -### 15.1 环境变量 +### 15.1 环境变量汇总 + +#### 统一配置变量 (env.properties) | 变量名 | 说明 | 默认值 | |--------|------|--------| -| `TENANT_ID` | 租户ID | - | -| `MYSQL_HOST` | MySQL地址 | localhost | -| `MYSQL_PORT` | MySQL端口 | 3306 | +| `NACOS_SERVER_ADDR` | Nacos服务地址 | localhost:8848 | +| `NACOS_NAMESPACE` | Nacos命名空间 | fund-platform | +| `NACOS_GROUP` | Nacos分组 | DEFAULT_GROUP | +| `NACOS_USERNAME` | Nacos用户名 | nacos | +| `NACOS_PASSWORD` | Nacos密码 | nacos | | `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 访问地址 diff --git a/doc/单机部署文档.md b/doc/单机部署文档.md index 2701705..c13482e 100644 --- a/doc/单机部署文档.md +++ b/doc/单机部署文档.md @@ -1,7 +1,7 @@ # 资金服务平台单机部署文档 -> 版本: v2.1 -> 更新日期: 2026-02-22 +> 版本: v2.2 +> 更新日期: 2026-02-13 > 作者: zhangjf --- @@ -391,11 +391,12 @@ fund-sys/ │ ├── start.sh # 启动脚本(自动识别服务名) │ ├── stop.sh # 停止脚本 │ ├── restart.sh # 重启脚本 -│ ├── status.sh # 状态查看脚本 -│ └── env.properties # 环境变量配置模板 +│ └── status.sh # 状态查看脚本 ├── lib/ # 依赖JAR目录 │ └── fund-sys.jar # 服务JAR包(包含所有依赖) └── conf/ # 配置文件目录(排除docker相关配置) + ├── env.properties # 统一配置(所有服务共用) + ├── service.properties # 个性化配置(每服务独立) ├── application.yml # 主配置文件 ├── application-*.yml # 环境配置文件 └── logback-spring.xml # 日志配置文件 @@ -425,7 +426,8 @@ fundplatform/ **Assembly配置特点:** - 脚本从项目根目录 `scripts/` 引用,避免重复 - 配置文件排除 `application-docker.yml` 等Docker相关配置 -- 脚本自动从目录名推断服务名称,无需硬编码 +- 统一配置 `env.properties` 和个性化配置 `service.properties` 分离 +- 个性化配置覆盖统一配置,支持多租户部署 #### 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 # /opt/fundplatform/config/env.properties