zhangjf
|
8233ff8040
|
feat: 支持多租户专属实例(逗号分隔的租户ID列表)
功能增强:
- TENANT_ID 支持逗号分隔的多个租户 ID
- 一个实例可以服务多个指定租户
实例类型:
共享实例: TENANT_ID = "" (空)
单租户专属: TENANT_ID = "VIP_001"
多租户专属: TENANT_ID = "VIP_001,VIP_002,VIP_003"
路由逻辑:
1. 解析实例 metadata.tenant-id 为租户列表
2. 检查请求 tenantId 是否在列表中
3. 匹配成功 → 专属实例
4. 匹配失败 → 回退共享实例
使用场景:
- 大客户独占实例(单租户)
- 多个小客户共享一个实例(多租户)
- 普通客户使用公共实例(共享)
|
2026-02-19 21:39:30 +08:00 |
|
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 |
|
zhangjf
|
2765f3f265
|
feat: 本地开发环境配置多租户路由
问题:fund-gateway 和 fund-sys 的 application.yml 缺少 tenant.routing 配置
修改内容:
1. fund-sys/application.yml
- 添加 tenant.routing 配置
- 配置 VIP 租户列表 (TENANT_VIP_001, TENANT_VIP_002)
- 配置共享服务列表
2. fund-gateway/application.yml
- 添加 Nacos 服务发现配置
- 路由改为 lb:// 协议使用负载均衡
- 添加全局跨域配置
- 添加 tenant.routing 配置
- 添加负载均衡日志级别
|
2026-02-19 21:11:08 +08:00 |
|
zhangjf
|
8e4afcd1a5
|
feat: TenantAwareLoadBalancer 整合 TenantRoutingProperties 配置
问题:TenantRoutingProperties 定义了配置但未被使用
解决方案:
1. TenantAwareLoadBalancer 注入 TenantRoutingProperties
- 使用配置的 tenantHeader 名称
- 使用配置的 buildTenantGroup 方法
- 使用配置的 isSharedService 判断
- 使用配置的 isFallbackToShared 策略
2. 新增功能
- 支持 enabled=false 禁用租户路由
- 共享服务跳过租户过滤
- 可配置是否回退到共享实例
3. 更新测试适配新构造函数
|
2026-02-19 21:02:25 +08:00 |
|
zhangjf
|
0c87462b68
|
fix: 修复fund-req/fund-exp/fund-receipt模块的mybatis-plus依赖和数据库配置
|
2026-02-17 16:42:21 +08:00 |
|