diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md index 1a4c733..e114d36 100644 --- a/.planning/REQUIREMENTS.md +++ b/.planning/REQUIREMENTS.md @@ -9,6 +9,16 @@ ### 配置管理 +- [ ] **CFG-01**:网关监听来自 fengling-console 的配置变更事件(PostgreSQL NOTIFY) +- [ ] **CFG-02**:收到通知后网关无需重启即可重载配置 +- [ ] **CFG-03**:多实例网关通过 PostgreSQL NOTIFY 广播接收配置更新 + +### 多实例支持 + +- [ ] **INST-01**:多个网关实例可以同时运行 +- [ ] **INST-02**:配置变更通过 NOTIFY 广播传播到所有实例 +- [ ] **INST-03**:使用 PostgreSQL LISTEN 订阅配置变更频道 + - [ ] **CFG-01**:网关监听来自 fengling-console 的配置变更事件 - [ ] **CFG-02**:收到通知后网关无需重启即可重载配置 - [ ] **CFG-03**:多实例网关通过广播接收配置更新(Redis pub/sub 或 PostgreSQL NOTIFY) diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index d1fed25..1574721 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -5,7 +5,25 @@ --- -## 阶段 1:Console 驱动的配置管理与多实例支持 +## 阶段 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 驱动的配置管理和多实例支持。