Files
webui4frpc/web
JianFeeeee b40b53b40b feat(web): 集群页显示负载均衡视图
接 8176478 的只读端点。此前 balancer 的判断**只能从日志看**,而且只在"确实失衡
且迟滞窗口已满"时才输出 —— 运维在健康状态下得到的是沉默,与"负载均衡没开"完全
无法区分。

## 界面

- **各节点 Score 条**:按分数降序(最热的在顶部),条宽按最大分数归一化 ——
  空闲时(score≈5)和繁忙时(score≈500)都能看出形状。
- **阈值说明**:直接写出"超载 = Score > 均值 × N"与"需持续 N 分钟",运维不必
  去猜这两个数字怎么定的。
- **四种状态**(仅 leader 显示):
  - 已均衡 —— 无超载节点
  - 等待确认 —— 已超载但迟滞窗口未满,并显示"已持续 N 分钟 / 需 N 分钟"
    ★ 这是最有价值的一态:否则"为什么还不迁"无从回答
  - 将迁移 / 迁移进行中 —— 给出具体转发与两端节点
- **follower 不显示计划**,与端点的 isLeader 门禁一致:随便查一台节点不该
  暗示集群不会做出的决定。
- **端点 404 时整块不渲染** —— 缺席比空面板诚实(空面板会让人以为支持)。

## 一处刻意的非对称

`load()` 里 ring 失败保留上次值,balance 失败则**清空**。理由:ring 是拓扑快照,
陈旧可接受;balance 是**决策面**,端点开始失败后仍显示"已均衡"比什么都不显示
更危险 —— 会让人以为系统确认过集群是好的。

vue-tsc --noEmit 干净;go build / go test ./... (go clean -testcache) 全绿。
2026-10-06 12:58:17 +08:00
..