zhangjf 5a2154c1a1 refactor: 简化路由逻辑,直接使用 tenantId 匹配实例
问题:tenantGroup 是 tenantId 的简单转换,造成冗余
  tenantGroup = "TENANT_" + tenantId.toUpperCase()

解决方案:
1. 直接使用 tenantId 匹配实例
   - 移除 tenantGroup 概念
   - 负载均衡器直接匹配 metadata.tenant-id

2. 简化配置
   - JWT 只需 tenantId 一个字段
   - 实例元数据只有 tenant-id

3. 前端简化
   - 请求头只需 X-Tenant-Id
   - 不再需要 X-Tenant-Group

路由规则:
  共享实例: metadata.tenant-id = "" (空)
  VIP实例:  metadata.tenant-id = "VIP_001"
  匹配逻辑: 找到匹配实例 → VIP专属,找不到 → 共享实例
2026-02-19 21:33:51 +08:00

94 lines
2.6 KiB
YAML

server:
port: 8100
spring:
application:
name: fund-sys
cloud:
nacos:
discovery:
server-addr: localhost:8848
namespace: fund-platform
group: DEFAULT_GROUP
username: nacos
password: nacos
# 租户路由元数据
# tenant-id: 空值=共享实例,有值=VIP专属实例
metadata:
tenant-id: ${TENANT_ID:}
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/fund_sys?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
username: root
password: zjf@123456
hikari:
# 连接池大小配置
maximum-pool-size: 20 # 最大连接数(建议: CPU核心数*2 + 有效磁盘数)
minimum-idle: 5 # 最小空闲连接数
# 连接超时配置
connection-timeout: 30000 # 连接超时时间(毫秒)
idle-timeout: 600000 # 空闲连接超时时间(10分钟)
max-lifetime: 1800000 # 连接最大存活时间(30分钟)
# 连接验证配置
validation-timeout: 5000 # 连接验证超时时间
leak-detection-threshold: 60000 # 连接泄露检测阈值(60秒)
# 连接池名称
pool-name: FundSysHikariPool
# 连接初始化SQL
connection-init-sql: SELECT 1
# Redis配置
data:
redis:
host: localhost
port: 6379
password: zjf@123456
database: 0
timeout: 10000
lettuce:
pool:
max-active: 8
max-wait: -1
max-idle: 8
min-idle: 0
mybatis-plus:
mapper-locations: classpath*:/mapper/**/*.xml
type-aliases-package: com.fundplatform.sys.data.entity
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
logic-delete-field: deleted
logic-delete-value: 1
logic-not-delete-value: 0
# 租户插件配置(一库多租户模式启用)
tenant:
enabled: false # 启用后自动为 SQL 添加 tenant_id 条件
logging:
level:
com.fundplatform.sys: DEBUG
pattern:
console: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"
# 多租户路由配置(服务实例只需声明自己的租户组)
tenant:
routing:
enabled: true
tenant-header: X-Tenant-Id
tenant-group-header: X-Tenant-Group
default-tenant-id: "1"
# 共享服务列表
shared-services:
- fund-gateway
- fund-report
- fund-file
# 回退到共享实例
fallback-to-shared: true