Skip to content

[Node Federation] 增加节点心跳与状态上报服务 #47

Description

@WilliamWang1721

目标

让 Worker 能定期向共享存储写入自身运行状态,Controller/UI 后续可以读取节点状态,而不是每次实时请求所有 Worker。

设计建议

优先使用 Redis 存运行时状态:

lb:nodes:{node_id}:status
lb:nodes:online

状态 TTL 应略大于 heartbeat 间隔,例如 heartbeat 30s,TTL 90s。

写入字段:

  • node_id
  • role
  • region
  • version
  • active_streams
  • max_concurrency
  • last_seen_at
  • db_status
  • redis_status
  • process_uptime

实现建议

  • 新增 NodeHeartbeatService
  • service/wire.go ProviderSet 中注入并启动。
  • Redis 不可用时不应阻断模型请求,只记录 degraded。
  • 不在本 issue 中做 UI。

测试点

  • 服务启动后按周期写 Redis。
  • TTL 到期后节点自动消失。
  • Redis 写失败不影响启动和网关请求。
  • 单测覆盖 key 命名和 TTL。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions