# Phase 1: 实现 Gateway 配置管理及事件推送 - Context **收集日期:** 2026-03-02 **状态:** Ready for planning **来源:** Manual planning (gsd-tools not available) **更新:** 2026-03-03 - 添加数据源决策 ## Phase Boundary 实现 Console 管理 Gateway 配置的完整能力,包括: - Gateway 配置的 CRUD 操作(已大部实现) - 配置变更事件推送(待实现) - 下游 Gateway 监听配置变更并重载 **现有能力:** - GatewayController: API 端点已实现 - GatewayService: 业务逻辑已实现 - DTOs: 数据传输对象已定义 **待实现:** - ReloadGatewayAsync() 广播机制 - 配置变更时自动触发广播 ## Implementation Decisions ### 技术选型 - **广播机制**: PostgreSQL NOTIFY/LISTEN(轻量方案,无需额外依赖) - **备选方案**: Redis pub/sub(如需多实例通信) ### 数据源 - **通知服务数据库连接**: 从 EF Core DbContext 获取,而非从配置文件读取 - **实现方式**: 注入 ConsoleDbContext,使用 `DbContext.Database.GetConnectionString()` ### 功能决策 - **自动广播**: 配置变更(创建/更新/删除)时自动触发广播 - **手动广播**: 提供 /api/console/gateway/reload 手动触发端点 ### Claude's Discretion - 具体的 NOTIFY 通道名称格式 - 事件 payload 结构设计 - 是否需要事件类型区分(service/route/instance) ## Specific Ideas **关键文件:** - src/Services/GatewayService.cs - ReloadGatewayAsync() 空实现需填充 - src/Controllers/GatewayController.cs - POST /reload 端点 - src/Services/ConfigNotificationService.cs - 需修改为使用 DbContext 获取连接字符串 **依赖:** - Npgsql - PostgreSQL 通知(已通过 EF Core 引用) - Redis(可选)- 如选择 Redis pub/sub **参考实现:** - 网关已有 PgSqlConfigChangeListener 使用 NOTIFY/LISTEN,可复用 ## Deferred Ideas - K8s 服务健康检查(后续 Phase) - Redis pub/sub(如果 PostgreSQL NOTIFY 方案不够用再考虑) --- *Phase: 01-gateway-config-management* *Context gathered: 2026-03-02, updated 2026-03-03*