101 lines
3.2 KiB
Markdown
101 lines
3.2 KiB
Markdown
# Fengling Console
|
||
|
||
## 这是什么
|
||
|
||
Fengling 微服务生态系统的中央管理控制台。负责用户管理、租户管理、OAuth 客户端管理,以及**网关配置管理**。是所有运维操作的中枢后台。
|
||
|
||
## 核心价值
|
||
|
||
统一的管理入口,负责所有运维相关的配置和操作,让其他服务专注于业务逻辑。
|
||
|
||
## 需求
|
||
|
||
### 已验证(现有功能)
|
||
|
||
- ✓ 用户管理(CRUD、角色分配)— 已有
|
||
- ✓ 租户管理 — 已有
|
||
- ✓ OAuth 客户端管理 — 已有
|
||
- ✓ 网关服务/路由/实例管理 — 已有(GatewayController)
|
||
- ✓ 租户申请审批流程 — 已有
|
||
|
||
### 进行中
|
||
|
||
- [ ] 实现配置变更广播机制(通过 PostgreSQL NOTIFY 通知所有网关实例)
|
||
- [ ] 实现 K8s 服务健康检查功能
|
||
|
||
- [ ] 实现配置变更广播机制(通知所有网关实例)
|
||
- [ ] 实现 K8s 服务健康检查功能
|
||
- [ ] 集成 Redis pub/sub 用于多实例通信
|
||
|
||
### 范围外
|
||
|
||
- [业务逻辑] — 由各微服务负责
|
||
- [API 认证] — 由 auth-service 负责
|
||
- [服务发现] — 由 service-discovery 负责
|
||
|
||
## 背景
|
||
|
||
**与 Gateway 的关系:**
|
||
```
|
||
fengling-console (管理平面)
|
||
│
|
||
├── 用户/租户/配置管理
|
||
│
|
||
└── 网关配置管理
|
||
│
|
||
├── GatewayDbContext (直接操作数据库)
|
||
├── GatewayController (API)
|
||
└── ReloadGatewayAsync() (待实现广播)
|
||
│
|
||
▼
|
||
fengling-gateway (数据平面)
|
||
│
|
||
└── 监听配置变更,重新加载
|
||
```
|
||
|
||
**当前问题(来自 CONCERNS.md):**
|
||
- OAuth 密钥硬编码
|
||
- CORS 允许所有(开发环境)
|
||
- 缺少测试覆盖
|
||
- ReloadGatewayAsync() 为空实现
|
||
|
||
**Console 已有能力:**
|
||
- GatewayDbContext - 管理网关路由、集群、实例数据
|
||
- GatewayController - 提供 /api/console/gateway/* API
|
||
- GatewayService - 业务逻辑
|
||
- 网关已有 PgSqlConfigChangeListener 使用 NOTIFY/LISTEN,可复用
|
||
- OAuth 密钥硬编码
|
||
- CORS 允许所有(开发环境)
|
||
- 缺少测试覆盖
|
||
- Redis 已引用但未使用
|
||
- ReloadGatewayAsync() 为空实现
|
||
|
||
**Console 已有能力:**
|
||
- GatewayDbContext - 管理网关路由、集群、实例数据
|
||
- GatewayController - 提供 /api/console/gateway/* API
|
||
- GatewayService - 业务逻辑
|
||
- Redis 引用 - 可用于 pub/sub 广播
|
||
|
||
## 约束
|
||
|
||
- **多实例**:Console 必须支持多实例部署
|
||
- **配置广播**:配置变更需要通知所有网关实例
|
||
- **K8s 健康**:Console 需要实现 K8s 服务健康检查
|
||
- **技术栈**:.NET 10.0, ASP.NET Core, PostgreSQL
|
||
|
||
## 关键决策
|
||
|
||
| 决策 | 理由 | 结果 |
|
||
|------|------|------|
|
||
| Console 作为运维中枢 | 集中管理,降低复杂度 | ✓ 良好 |
|
||
| Gateway 配置从 Console 变更 | 单一事实来源 | ✓ 良好 |
|
||
| PostgreSQL NOTIFY 广播 | 轻量方案,无需额外依赖 | ✓ 良好 |
|
||
|------|------|------|
|
||
| Console 作为运维中枢 | 集中管理,降低复杂度 | ✓ 良好 |
|
||
| Gateway 配置从 Console 变更 | 单一事实来源 | ✓ 良好 |
|
||
| Redis pub/sub 广播 | 成熟方案,易于实现 | ✓ 良好 |
|
||
|
||
---
|
||
|
||
*最后更新:2026-03-02 初始化后*
|