feat: M3 load balancing + health check (model/render/admin API status/UI)

This commit is contained in:
2026-08-17 17:45:03 +08:00
parent bd3a62a017
commit 467c7124ab
10 changed files with 658 additions and 33 deletions

30
plan.md
View File

@ -55,9 +55,11 @@
### M3 负载均衡与健康检查
- [ ] group / groupKey(多后端负载均衡
- [ ] health checktcp / http失败剔除与恢复
- [ ] 状态页体现 LB 组与健康状态
- [x] 模型扩展Local 增加 lbGroup / lbGroupKey / healthCheck* 字段Remote 增加 adminAddr / adminPort / adminUser / adminPasswordlocal frpc admin API
- [x] 渲染器proxy 输出 loadBalancer + healthCheckworker 配置输出 webServer 段frpc >= 0.52 支持)
- [x] 状态页:按 admin API GET /api/status 拉取真实 per-proxy 状态running / check failed / wait start / start error / new / closed未启用 admin 时回退日志推断
- [x] 前端LocalNode/RemoteNode 表单 + StatusView per-proxy 状态与 LB 组徽标vue-tsc 通过)
- [ ] CLUSTER 页展示负载均衡组group+ 健康检查状态(待 M3 后续迭代)
### M4 更多代理类型
@ -74,12 +76,32 @@
- [ ] 配置导出/导入(备份)
- [ ] 日志查看页worker 日志 tail UI
> 注:发布类条目已并入 **M7 运维与发布(原 M5**,本节 M5 保留初始清单。
>
### M6 集群内 frpc 二进制分发(节点间优先,外部 URL 兜底)
> 诉求:集群内 frpc 二进制**优先通过集群节点间交换**获得,无法交换时才走外部 URL 下载;新节点加入集群时,**自动由邻居节点向其传输二进制**。
- [ ] 二进制来源优先级:本地已有缓存 > 集群节点间交换HTTP/Chunked 拉取) > 外部 URLGitHub Releases
- [ ] 节点注册表集群发现IP:port 心跳)记录各节点已缓存的 frpc 版本与可用性
- [ ] 传输通道:节点间 HTTP GET /frpc/{version}Basic Auth + 大小上限防放大),支持断点续传/校验和
- [ ] 入网引导:新节点加入时自动向邻居请求 latest 二进制并本地落盘缓存,随后按需启动
- [ ] 失败回退:节点间交换不可用时(如源节点离线/版本缺失)自动回退外部 URL 下载
- [ ] Cache 管理版本保留策略LRU / 仅保留常用)、可用性标记(黑名单失效节点)
- [ ] UI设置页展示二进制来源与缓存状态集群页展示节点间传输进度
### M7 运维与发布(原 M5
- [x] git init + 首次 commit + .gitignore
- [ ] 一键构建脚本 / GitHub Actions release / 配置导入导出 / 日志查看页
## 建议推进顺序
1. [x] 修复「设置保存失效」——给 `PUT /api/manager/settings` 补注册server.go 方法分发 + httpapi 单测)
2. [x] 对齐 dev proxy 端口——vite.config.ts → 7500支持 VITE_PROXY_TARGET 覆盖)
3. M1 高级传输参数store 加列 → render 输出 → 前端折叠表单 → 单测回归)
4. M5 补一键构建脚本 / CI
4. M3 负载均衡与健康检查(模型 → 渲染 → admin API 状态 → 集群页)— 进行中
5. M6 集群内 frpc 二进制分发(节点间优先 → 外部 URL 兜底 → 新节点自动传输)
## 审查结论摘要(详见 FRPC_FEATURES_AUDIT.md