2.8 KiB
2.8 KiB
需求文档:Fengling Gateway
定义日期: 2026-03-02 核心价值: 可靠、可扩展的 API 网关,将流量分发到后端微服务,支持零停机配置更新。
v1 需求
初始发布版本的需求。每个需求对应一个 Roadmap 阶段。
配置管理
- CFG-01:网关监听来自 fengling-console 的配置变更事件(PostgreSQL NOTIFY)
- CFG-02:收到通知后网关无需重启即可重载配置
- CFG-03:多实例网关通过 PostgreSQL NOTIFY 广播接收配置更新
多实例支持
- INST-01:多个网关实例可以同时运行
- INST-02:配置变更通过 NOTIFY 广播传播到所有实例
- INST-03:使用 PostgreSQL LISTEN 订阅配置变更频道
K8s 健康委托
- K8S-01:从网关注销 K8s 健康监控
- K8S-02:网关将服务健康检查委托给 console
安全修复
- SEC-01:移除源代码中的硬编码凭据
- SEC-02:实现正确的 JWT Token 验证
- SEC-03:为网关管理 API 端点添加认证
性能优化
- PERF-01:优化负载均衡锁竞争
- PERF-02:实现增量路由缓存更新
v2 需求
延期到未来版本。已记录但不在当前 Roadmap 中。
可观测性
- OBS-01:分布式追踪集成
- OBS-02:网关性能自定义指标
测试
- TEST-01:RouteCache 单元测试
- TEST-02:JwtTransformMiddleware 单元测试
- TEST-03:负载均衡策略单元测试
范围外
| 功能 | 原因 |
|---|---|
| 直接配置网关的 UI | 由 fengling-console 处理 |
| 网关中的 K8s 服务健康检查 | 委托给 console |
| 网关中的认证逻辑 | 由 auth-service 处理 |
| 网关中的授权逻辑 | 由下游服务处理 |
可追溯性
哪些阶段覆盖哪些需求。Roadmap 创建时更新。
| 需求 | 阶段 | 状态 |
|---|---|---|
| CFG-01 | 阶段 1 | ✅ 已完成 |
| CFG-02 | 阶段 1 | ✅ 已完成 |
| CFG-03 | 阶段 1 | ✅ 已完成 |
| INST-01 | 阶段 1 | ✅ 已完成 |
| INST-02 | 阶段 1 | ✅ 已完成 |
| INST-03 | 阶段 1 | ✅ 已完成 |
| K8S-01 | 阶段 2 | 待处理 |
| K8S-02 | 阶段 2 | 待处理 |
| SEC-01 | 阶段 3 | 待处理 |
| SEC-02 | 阶段 3 | 待处理 |
| SEC-03 | 阶段 3 | 待处理 |
| PERF-01 | 阶段 4 | 待处理 |
| PERF-02 | 阶段 4 | 待处理 |
覆盖率:
- v1 需求:共 12 项
- 已映射到阶段:12 项
- 未映射:0 ✓
- 已完成:6 项(阶段 1)
- 待处理:6 项
阶段 1 完成说明:
- 现有
PgSqlConfigChangeListener.cs已实现所有监听需求 - 监听频道:
gateway_config_changed - 包含断线重连和回退轮询机制
需求定义:2026-03-02 最后更新:2026-03-02 阶段1完成后