问题:TenantRoutingProperties 定义了配置但未被使用 解决方案: 1. TenantAwareLoadBalancer 注入 TenantRoutingProperties - 使用配置的 tenantHeader 名称 - 使用配置的 buildTenantGroup 方法 - 使用配置的 isSharedService 判断 - 使用配置的 isFallbackToShared 策略 2. 新增功能 - 支持 enabled=false 禁用租户路由 - 共享服务跳过租户过滤 - 可配置是否回退到共享实例 3. 更新测试适配新构造函数
123 lines
3.2 KiB
YAML
123 lines
3.2 KiB
YAML
# Docker 环境配置
|
||
server:
|
||
port: ${SERVER_PORT:8100}
|
||
|
||
spring:
|
||
application:
|
||
name: fund-sys
|
||
profiles:
|
||
active: ${SPRING_PROFILES_ACTIVE:docker}
|
||
|
||
# 数据源配置
|
||
datasource:
|
||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||
url: jdbc:mysql://${MYSQL_HOST:mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:fund_platform}?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
|
||
username: ${MYSQL_USER:root}
|
||
password: ${MYSQL_PASSWORD:root123}
|
||
hikari:
|
||
pool-name: FundSysHikariPool
|
||
minimum-idle: 5
|
||
maximum-pool-size: 20
|
||
idle-timeout: 30000
|
||
max-lifetime: 1800000
|
||
connection-timeout: 30000
|
||
|
||
# Redis 配置
|
||
data:
|
||
redis:
|
||
host: ${REDIS_HOST:redis}
|
||
port: ${REDIS_PORT:6379}
|
||
|
||
# Nacos 配置
|
||
cloud:
|
||
nacos:
|
||
server-addr: ${NACOS_SERVER_ADDR:nacos:8848}
|
||
username: ${NACOS_USERNAME:nacos}
|
||
password: ${NACOS_PASSWORD:nacos}
|
||
discovery:
|
||
namespace: ${NACOS_NAMESPACE:}
|
||
group: DEFAULT_GROUP
|
||
enabled: true
|
||
# 多租户元数据配置(支持混合模式负载均衡)
|
||
metadata:
|
||
tenant-id: ${TENANT_ID:1}
|
||
tenant-group: ${TENANT_GROUP:}
|
||
# 服务实例权重(VIP实例可配置更高权重)
|
||
weight: ${NACOS_WEIGHT:1}
|
||
|
||
# MyBatis Plus 配置
|
||
mybatis-plus:
|
||
mapper-locations: classpath*:/mapper/**/*.xml
|
||
global-config:
|
||
db-config:
|
||
id-type: ASSIGN_ID
|
||
logic-delete-field: deleted
|
||
logic-delete-value: 1
|
||
logic-not-delete-value: 0
|
||
|
||
# ==================== 多租户混合模式配置 ====================
|
||
tenant:
|
||
routing:
|
||
# 启用租户感知负载均衡
|
||
enabled: true
|
||
# 默认租户ID
|
||
default-tenant-id: 1
|
||
# 租户服务配置
|
||
services:
|
||
fund-sys:
|
||
# VIP租户列表(优先路由到专属实例)
|
||
vip-tenants:
|
||
- TENANT_VIP_001
|
||
- TENANT_VIP_002
|
||
# 共享实例回退策略:当无专属实例时回退到共享实例
|
||
fallback-to-shared: true
|
||
fund-cust:
|
||
vip-tenants:
|
||
- TENANT_VIP_001
|
||
fallback-to-shared: true
|
||
fund-proj:
|
||
vip-tenants:
|
||
- TENANT_VIP_001
|
||
fallback-to-shared: true
|
||
|
||
# Actuator 监控端点配置
|
||
management:
|
||
endpoints:
|
||
web:
|
||
exposure:
|
||
include: health,info,metrics,prometheus
|
||
base-path: /actuator
|
||
endpoint:
|
||
health:
|
||
show-details: always
|
||
probes:
|
||
enabled: true
|
||
health:
|
||
livenessstate:
|
||
enabled: true
|
||
readinessstate:
|
||
enabled: true
|
||
metrics:
|
||
tags:
|
||
application: ${spring.application.name}
|
||
# 多租户监控标签
|
||
tenant_id: ${TENANT_ID:1}
|
||
tenant_group: ${TENANT_GROUP:shared}
|
||
instance_type: ${TENANT_GROUP:shared}
|
||
distribution:
|
||
percentiles-histogram:
|
||
http.server.requests: true
|
||
percentiles:
|
||
http.server.requests: 0.5,0.95,0.99
|
||
|
||
# 日志配置
|
||
logging:
|
||
level:
|
||
root: INFO
|
||
com.fundplatform: DEBUG
|
||
# 多租户负载均衡日志
|
||
com.fundplatform.common.loadbalancer: DEBUG
|
||
com.fundplatform.common.nacos: DEBUG
|
||
pattern:
|
||
console: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%X{tenantId}] %-5level %logger{36} - %msg%n"
|