- Define console as central management system - Document current gateway integration status - Track pending tasks for broadcast mechanism
2.5 KiB
2.5 KiB
Fengling Console
这是什么
Fengling 微服务生态系统的中央管理控制台。负责用户管理、租户管理、OAuth 客户端管理,以及网关配置管理。是所有运维操作的中枢后台。
核心价值
统一的管理入口,负责所有运维相关的配置和操作,让其他服务专注于业务逻辑。
需求
已验证(现有功能)
- ✓ 用户管理(CRUD、角色分配)— 已有
- ✓ 租户管理 — 已有
- ✓ OAuth 客户端管理 — 已有
- ✓ 网关服务/路由/实例管理 — 已有(GatewayController)
- ✓ 租户申请审批流程 — 已有
进行中
- 实现配置变更广播机制(通知所有网关实例)
- 实现 K8s 服务健康检查功能
- 集成 Redis pub/sub 用于多实例通信
范围外
- [业务逻辑] — 由各微服务负责
- [API 认证] — 由 auth-service 负责
- [服务发现] — 由 service-discovery 负责
背景
与 Gateway 的关系:
fengling-console (管理平面)
│
├── 用户/租户/配置管理
│
└── 网关配置管理
│
├── GatewayDbContext (直接操作数据库)
├── GatewayController (API)
└── ReloadGatewayAsync() (待实现广播)
│
▼
fengling-gateway (数据平面)
│
└── 监听配置变更,重新加载
当前问题(来自 CONCERNS.md):
- 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, Redis
关键决策
| 决策 | 理由 | 结果 |
|---|---|---|
| Console 作为运维中枢 | 集中管理,降低复杂度 | ✓ 良好 |
| Gateway 配置从 Console 变更 | 单一事实来源 | ✓ 良好 |
| Redis pub/sub 广播 | 成熟方案,易于实现 | ✓ 良好 |
最后更新:2026-03-02 初始化后