# 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 初始化后*