fengling-gateway/.planning/ROADMAP.md

135 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# RoadmapFengling Gateway
**创建日期:** 2026-03-02
**核心价值:** 可靠、可扩展的 API 网关,将流量分发到后端微服务,支持零停机配置更新。
---
## 阶段 1配置变更监听与多实例支持 ✅ 已完成
**目标:** 实现网关对配置变更的监听机制,支持多实例部署。
> **注意:** 此阶段只实现 YARP 网关部分的监听代码。Console 端的广播通知由 fengling-console 项目负责。
**需求:**
- [x] CFG-01网关监听来自 fengling-console 的配置变更事件PostgreSQL NOTIFY
- [x] CFG-02收到通知后网关无需重启即可重载配置
- [x] CFG-03多实例网关通过 PostgreSQL NOTIFY 广播接收配置更新
- [x] INST-01多个网关实例可以同时运行
- [x] INST-02配置变更通过 NOTIFY 广播传播到所有实例
- [x] INST-03使用 PostgreSQL LISTEN 订阅配置变更频道
**成功标准:**
- [x] 网关使用 LISTEN 订阅配置变更频道(如 `gateway_config_changed`
- [x] 收到 NOTIFY 后触发配置重载,无需重启
- [x] 多个网关实例通过数据库 NOTIFY 保持同步
- [x] 广播事件在 5 秒内到达所有实例
**实现文件:**
- `src/yarpgateway/Services/PgSqlConfigChangeListener.cs`
---
## 阶段 2K8s 健康检查委托 ✅ 已完成
**目标:** 将 K8s 服务健康监控从网关移除,委托给 fengling-console。
**需求:**
- [x] K8S-01从网关注销 K8s 健康监控
- [x] K8S-02网关将服务健康检查委托给 console
**成功标准:**
- [x] KubernetesPendingSyncService 已从网关移除
- [x] PendingServicesController 已从网关移除
- [x] 网关只执行请求路由,不做健康监控
**已删除的文件:**
- `Services/KubernetesPendingSyncService.cs`
- `Controllers/PendingServicesController.cs`
- `Models/GwPendingServiceDiscovery.cs`
**已修改的文件:**
- `Program.cs` - 移除服务注册和 using 语句
- `Data/GatewayDbContext.cs` - 移除 DbSet 和模型配置
---
## 阶段 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-01RouteCache 单元测试
- [ ] TEST-02JwtTransformMiddleware 单元测试
- [ ] TEST-03负载均衡策略单元测试
**成功标准:**
1. 分布式追踪包含网关跨度
2. 导出关键指标(请求数、延迟、错误率)
3. 核心组件测试覆盖率 >80%
## 阶段 6网关插件技术调研与实现
**目标:** 实现网关插件化支持。
**需求:**
- [ ] PLUG-01网关插件化架构设计
- [ ] PLUG-02插件加载机制
- [ ] PLUG-03插件隔离与生命周期管理
**成功标准:**
1. 网关支持动态加载插件
2. 插件之间相互隔离
3. 插件可以在运行时热加载/卸载
---
## Roadmap 摘要
|| 阶段 | 名称 | 需求数 | 状态 |
||------|------|--------|------|
|| 1 | 配置变更监听与多实例支持 | 6 | ✅ 已完成 |
|| 2 | K8s 健康检查委托 | 2 | ✅ 已完成 |
|| 3 | 安全加固 | 3 | 未规划 |
|| 4 | 性能优化 | 2 | 未规划 |
|| 5 | 可观测性与测试 | 5 | 未规划 |
|| 6 | 网关插件技术调研与实现 | 3 | 未规划 |
**总计:** 6 个阶段 | 21 个需求 | 8 项已完成
---
*最后更新2026-03-04 阶段6已添加*