- Create MigrationTool console app for exporting DB config to K8s YAML - Support dry-run mode and validation - Add Npgsql and YamlDotNet dependencies
4.1 KiB
4.1 KiB
#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 | 网关插件技术调研与实现 | |
| #PW | 7 | 网关配置重构规划 | 待规划 |
累积上下文
初始化
- 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.cssrc/yarpgateway/Plugins/PluginLoader.cssrc/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.cssrc/yarpgateway/Plugins/PluginLoader.cssrc/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 |
备注
- 自动模式:跳过研究,工作流偏好设置为 yolo
- 配置变更应提交到 git(commit_docs: true)
- gsd-tools.cjs 不可用 - 项目结构手动创建
最后更新:2026-03-04 - 完成阶段 6 计划 006-01:插件加载基础设施(PLUG-01, PLUG-02)