配置同步与定向下发时序

配置同步与定向下发时序 由 Archify 生成的时序图。 HELLO <userId> <deviceId> <platform> <version> AUTH <secret>:DEVICE_AUTH_SECRET 非空时必需,否则拒绝连接 ack · 置 online 实时写库 cmd config.sync(configId + currentConfigVersion) 启动 / 重连必执行;无新版则沿用本地配置 按 configId 比对版本 SELECT configs latest v42 > v41 resp newVersion=true · 全量配置 客户端按字段合并 · 原子写本地 · 重读一次使新地址生效 POST /configs/:id/push(to 定向过滤) to 支持 platforms / deviceIds / minVersion 的 AND 组合 INSERT config_deliveries + items(pending) config.push(全量配置) matchDevice 命中在线会话;离线命中入待下发队列,worker 2s 补推 ack · 应用并持久化(items → delivered) 桌面客户端 · 时序参与者 桌面客户端 TLS 网关 :8443 · 时序参与者 TLS 网关 :8443 配置服务 · 时序参与者 配置服务 PostgreSQL · 时序参与者 PostgreSQL 管理端 API · 时序参与者 管理端 API 图例 请求 返回 安全 默认消息

双通道兜底

  • • config.push 主动推送:在线设备即时生效
  • • config.sync 拉取对账:启动 / 重连即补上离线期间的新配置
  • • 下发落在哪个副本不重要,持有连接的副本 2s 内补推

全量下发 · 按字段合并

  • • 服务端始终携带完整配置对象,版本号单调递增
  • • 客户端按顶层字段合并:收到覆盖,未收到保留原值
  • • 原子写 + 每连接全量对账,任何丢失与损坏都可自愈

下发留痕

  • • 每次下发落 config_deliveries + items,状态 pending / delivering / done / failed
  • • 在线下发记 msg_id 关联 ack,离线补推走队列 + sync 兜底
  • • 删除下发记录即撤销:后续上线设备不再接收