- Create MigrationTool console app for exporting DB config to K8s YAML - Support dry-run mode and validation - Add Npgsql and YamlDotNet dependencies
129 lines
4.1 KiB
Markdown
129 lines
4.1 KiB
Markdown
#VR|# 状态:Fengling Gateway
|
||
|
||
**最后更新:** 2026-03-04
|
||
|
||
---
|
||
|
||
## 项目引用
|
||
|
||
参考:.planning/PROJECT.md(更新于 2026-03-02)
|
||
|
||
**核心价值:** 可靠、可扩展的 API 网关,将流量分发到后端微服务,支持零停机配置更新。
|
||
|
||
**当前重点:** 阶段 6:网关插件技术调研与实现
|
||
|
||
---
|
||
|
||
## 项目状态
|
||
|
||
| 项目 | 状态 |
|
||
|------|------|
|
||
| PROJECT.md | ✓ 已初始化 |
|
||
| config.json | ✓ 已创建 |
|
||
| 需求文档 | ✓ 已定义(18 个需求) |
|
||
| Roadmap | ✓ 已创建(6 个阶段) |
|
||
| 研究 | 未开始(自动模式跳过) |
|
||
|
||
---
|
||
|
||
## 阶段状态
|
||
|
||
| 阶段 | 名称 | 状态 | 计划数 | 进度 |
|
||
|------|------|------|--------|------|
|
||
| 1 | 配置变更监听与多实例支持 | ✅ 已完成 | 0 | 100% |
|
||
| 2 | K8s 健康检查委托 | ✅ 已完成 | 0 | 100% |
|
||
| 3 | 安全加固 | 未规划 | 0 | 0% |
|
||
| 4 | 性能优化 | 未规划 | 0 | 0% |
|
||
| 5 | 可观测性与测试 | 未规划 | 0 | 0% |
|
||
#NH|QJ|| 6 | 网关插件技术调研与实现 | ✅ 进行中 | 2 | 50% |
|
||
#PW|| 7 | 网关配置重构规划 | 待规划 | 0 | 0% |
|
||
|
||
---
|
||
|
||
## 累积上下文
|
||
|
||
### 初始化
|
||
|
||
- **2026-03-02:** 通过 /gsd-new-project --auto 初始化项目
|
||
- 现有代码库的重构项目(已存在 ARCHITECTURE.md、CONCERNS.md、STACK.md)
|
||
- 用户提供背景:网关架构讨论,重点是 console 驱动的配置管理
|
||
|
||
### 关键决策
|
||
|
||
| 决策 | 日期 | 备注 |
|
||
|------|------|------|
|
||
| Console 驱动配置 | 2026-03-02 | 配置在 fengling-console 变更,网关监听 |
|
||
| PostgreSQL NOTIFY 广播 | 2026-03-02 | 使用 PostgreSQL NOTIFY/LISTEN,更轻量 |
|
||
| K8s 健康委托 | 2026-03-02 | Console 处理 K8s 健康,非网关 |
|
||
|
||
### 阶段 1 分析结论
|
||
|
||
- **2026-03-02:** 分析现有代码 `PgSqlConfigChangeListener.cs`
|
||
- 结论:现有实现已完整满足阶段 1 所有需求
|
||
- 监听频道:`gateway_config_changed`
|
||
- 包含:断线重连、回退轮询(5分钟)
|
||
|
||
### Console 集成现状
|
||
|
||
- Console 已实现 GatewayController 和 GatewayService
|
||
- Console 拥有 GatewayDbContext,可直接管理网关配置
|
||
- ReloadGatewayAsync() 为空实现,需要在 fengling-console 中实现 NOTIFY 发送
|
||
|
||
SK|### 阶段 6 实施
|
||
|
||
**2026-03-04:** 实现插件加载基础设施
|
||
- 完成 PLUG-01:网关插件化架构设计
|
||
- 完成 PLUG-02:插件加载机制
|
||
- 实现文件:
|
||
- `src/yarpgateway/Plugins/PluginLoadContext.cs`
|
||
- `src/yarpgateway/Plugins/PluginLoader.cs`
|
||
- `src/yarpgateway/Plugins/PluginHost.cs`
|
||
- 单元测试:15 个全部通过
|
||
|
||
**2026-03-04:** YARP 集成设计决策(与用户讨论)
|
||
- 管道选择:Transforms(更轻量,少资源占用)
|
||
- OnRouteMatchedAsync:用于目标选择(特殊租户访问特殊目标)
|
||
- 负载均衡:暂不考虑,使用内置
|
||
- 插件启用:Metadata + Console DB 通知触发
|
||
- 插件排序:需要(通过 PluginOrder metadata)
|
||
|
||
**已规划计划 006-02:**
|
||
- PluginTransformProvider - YARP Transform 提供者
|
||
- DestinationSelector - 目标选择器
|
||
- PluginConfigWatcher - Console DB 通知监听
|
||
|
||
XX|---
|
||
|
||
|
||
|
||
- **2026-03-04:** 实现插件加载基础设施
|
||
- 完成 PLUG-01:网关插件化架构设计
|
||
- 完成 PLUG-02:插件加载机制
|
||
- 实现文件:
|
||
- `src/yarpgateway/Plugins/PluginLoadContext.cs`
|
||
- `src/yarpgateway/Plugins/PluginLoader.cs`
|
||
- `src/yarpgateway/Plugins/PluginHost.cs`
|
||
- 单元测试:15 个全部通过
|
||
|
||
### Roadmap Evolution
|
||
|
||
- **2026-03-07:** 阶段 7 添加:网关配置重构规划(分析"网关配置的新想法.md"中的方案,识别冲突点,制定新架构)
|
||
|
||
## 快速任务完成
|
||
|
||
| # | Description | Date | Commit | Directory |
|
||
|---|-------------|------|--------|----------|
|
||
| 001 | 升级 Fengling.Platform 包并修复编译警告 | 2026-03-04 | 42b8c9c | [001-upgrade-platform](./quick/001-upgrade-platform/) |
|
||
|
||
---
|
||
|
||
## 备注
|
||
|
||
- 自动模式:跳过研究,工作流偏好设置为 yolo
|
||
- 配置变更应提交到 git(commit_docs: true)
|
||
- gsd-tools.cjs 不可用 - 项目结构手动创建
|
||
|
||
---
|
||
|
||
*最后更新:2026-03-04 - 完成阶段 6 计划 006-01:插件加载基础设施(PLUG-01, PLUG-02)*
|