# Roadmap:Fengling Gateway **创建日期:** 2026-03-02 **核心价值:** 可靠、可扩展的 API 网关,将流量分发到后端微服务,支持零停机配置更新。 --- ## 阶段 1:配置变更监听与多实例支持 **目标:** 实现网关对配置变更的监听机制,支持多实例部署。 > **注意:** 此阶段只实现 YARP 网关部分的监听代码。Console 端的广播通知由 fengling-console 项目负责。 **需求:** - CFG-01:网关监听来自 fengling-console 的配置变更事件(PostgreSQL NOTIFY) - CFG-02:收到通知后网关无需重启即可重载配置 - CFG-03:多实例网关通过 PostgreSQL NOTIFY 广播接收配置更新 - INST-01:多个网关实例可以同时运行 - INST-02:配置变更通过 NOTIFY 广播传播到所有实例 - INST-03:使用 PostgreSQL LISTEN 订阅配置变更频道 **成功标准:** 1. 网关使用 LISTEN 订阅配置变更频道(如 `gateway_config_changed`) 2. 收到 NOTIFY 后触发配置重载,无需重启 3. 多个网关实例通过数据库 NOTIFY 保持同步 4. 广播事件在 5 秒内到达所有实例 **目标:** 实现 console 驱动的配置管理和多实例支持。 **需求:** - CFG-01:网关监听来自 fengling-console 的配置变更事件 - CFG-02:收到通知后网关无需重启即可重载配置 - CFG-03:多实例网关通过广播接收配置更新 - INST-01:多个网关实例可以同时运行 - INST-02:配置变更传播到所有实例 - INST-03:使用 Redis pub/sub 进行跨实例通信 **成功标准:** 1. 网关可以订阅来自 console 的配置变更事件 2. 配置重载无需重启网关 3. 多个网关实例保持同步 4. 广播事件在 5 秒内到达所有实例 --- ## 阶段 2:K8s 健康检查委托 **目标:** 将 K8s 健康监控从网关移除,委托给 console。 **需求:** - K8S-01:从网关注销 K8s 健康监控 - K8S-02:网关将服务健康检查委托给 console **成功标准:** 1. KubernetesPendingSyncService 已弃用/从网关移除 2. 健康检查逻辑移至 console 项目 3. 网关只执行请求路由,不做健康监控 --- ## 阶段 3:安全加固 **目标:** 修复关键安全漏洞。 **需求:** - SEC-01:移除源代码中的硬编码凭据 - SEC-02:实现正确的 JWT Token 验证 - SEC-03:为网关管理 API 端点添加认证 **成功标准:** 1. 源代码中无硬编码密码/密钥 2. JWT Token 经过验证(签名、过期时间、颁发者、受众) 3. 所有 /api/gateway/* 端点需要认证 --- ## 阶段 4:性能优化 **目标:** 优化高负载下的网关性能。 **需求:** - PERF-01:优化负载均衡锁竞争 - PERF-02:实现增量路由缓存更新 **成功标准:** 1. 负载均衡不需要每个请求都获取 Redis 锁 2. 路由缓存更新是增量式的,而非全量重载 3. 网关处理能力提升 10 倍 --- ## 阶段 5:可观测性与测试 **目标:** 添加可观测性和测试覆盖。 **需求:** - OBS-01:分布式追踪集成 - OBS-02:网关性能自定义指标 - TEST-01:RouteCache 单元测试 - TEST-02:JwtTransformMiddleware 单元测试 - TEST-03:负载均衡策略单元测试 **成功标准:** 1. 分布式追踪包含网关跨度 2. 导出关键指标(请求数、延迟、错误率) 3. 核心组件测试覆盖率 >80% --- ## Roadmap 摘要 | 阶段 | 名称 | 需求数 | 状态 | |------|------|--------|------| | 1 | Console 驱动配置与多实例支持 | 6 | 未规划 | | 2 | K8s 健康检查委托 | 2 | 未规划 | | 3 | 安全加固 | 3 | 未规划 | | 4 | 性能优化 | 2 | 未规划 | | 5 | 可观测性与测试 | 5 | 未规划 | **总计:** 5 个阶段 | 18 个需求 | 全部覆盖 ✓ --- *最后更新:2026-03-02 Roadmap 创建后*