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
|
e52e2ba801
|
refactor: 简化租户元数据,移除冗余的 tenant-id
问题:metadata 中同时配置 tenant-id 和 tenant-group,但 tenant-id 未被使用
分析:
- tenant-id: 用于数据隔离,但实际由 TenantContextHolder 提供,元数据中的值无意义
- tenant-group: 用于服务路由,负载均衡器实际只使用此字段
解决方案:
1. 移除 metadata.tenant-id 配置
2. 只保留 metadata.tenant-group
3. 更新 NacosMetadataConfig,移除 tenant-id 处理
4. 更新 docker-compose.yml,移除 TENANT_ID 环境变量
配置简化:
修改前: tenant-id + tenant-group 两个字段
修改后: 只有 tenant-group 一个字段
实例类型:
共享实例: tenant-group = "" (空)
VIP实例: tenant-group = "TENANT_VIP_001"
|
2026-02-19 21:26:06 +08:00 |
|
zhangjf
|
5843cc050e
|
feat: Docker Compose配置多租户混合模式负载均衡
## 主要改动
### docker-compose.yml
- fund-sys 服务改为混合模式部署:
- fund-sys-shared: 共享实例(8100端口),供所有租户使用
- fund-sys-vip001: VIP_001专属实例(8101端口)
- 预留VIP_002模板(注释状态)
- 添加TENANT_ID、TENANT_GROUP环境变量
### NacosMetadataConfig
- 支持从环境变量读取租户元数据(优先级最高)
- 动态注册租户标签到Nacos
- 区分共享实例和VIP专属实例
### Prometheus配置
- 监控共享实例和VIP实例
- 添加tenant_mode、tenant_group标签
## 混合模式说明
- 共享实例(TENANT_GROUP为空): 所有普通租户请求路由到此类实例
- VIP实例(TENANT_GROUP有值): VIP租户请求路由到专属实例
|
2026-02-19 20:04:21 +08:00 |
|
zhangjf
|
5b80e237b9
|
feat: Docker容器化部署和Prometheus+Grafana监控
## Docker 容器化部署
### 新增文件
- Dockerfile: 多阶段构建镜像,支持 Java 21
- docker-compose.yml: 完整服务编排配置
- 基础设施: MySQL 8.0, Redis 7, Nacos 3.0
- 监控: Prometheus, Grafana
- 业务服务: Gateway + 9个微服务
- docker/.env: 环境变量配置
- docker/mysql/init/01-init.sql: 数据库初始化脚本
### Docker 特性
- 多阶段构建优化镜像大小
- 非 root 用户运行服务
- 健康检查配置
- 统一时区设置 (Asia/Shanghai)
## Prometheus + Grafana 监控
### Prometheus 配置
- docker/prometheus/prometheus.yml: 服务发现配置
- docker/prometheus/rules/alerts.yml: 告警规则
- 服务可用性告警
- JVM 内存告警
- HTTP 请求告警
- 数据库连接池告警
- 系统资源告警
### Grafana 配置
- docker/grafana/provisioning/: 数据源和Dashboard自动导入
- docker/grafana/dashboards/fund-platform-dashboard.json
- 服务概览面板
- JVM 内存监控
- 数据库连接池监控
### Spring Boot Actuator 集成
- pom.xml: 添加 spring-boot-starter-actuator 和 micrometer-registry-prometheus
- application-docker.yml: Prometheus 端点配置
## 服务端口规划
- Gateway: 8000
- fund-sys: 8100
- fund-cust: 8200
- fund-proj: 8300
- fund-req: 8400
- fund-exp: 8500
- fund-receipt: 8600
- fund-report: 8700
- fund-file: 8800
- Prometheus: 9090
- Grafana: 3000
- Nacos: 8848
|
2026-02-19 18:48:15 +08:00 |
|