首页 / 典型链路 / 典型业务链路
典型业务链路
GPS 上报到告警、实时视频、OTA、设备绑定四条端到端链路与排查入口。
链路一:GPS 上报 → 告警推送
- 设备经 MQTT/TCP 上报坐标,dgsvr 完成设备认证与接入
- gpscodecsvr 将私有 Protobuf 载荷解码为标准物模型 JSON
- geosvr 消费 NATS 原始点数据(
GPS_RAW_V1),坐标纠偏后写 TDengine,维护在线状态(Redis ZSET) - risksvr / alertsvr 进行风险区域(H3)与行为规则(WHEN-THEN)判断,产生告警事件
- eventsvr 分发事件;Java alarm 落告警记录并校验订阅权益,notify 创建消息任务
- wssvr / APNs / FCM 将告警实时推送到 App
排查入口:先看 NATS 主题是否有事件,再分别检查 geosvr(轨迹入库)、risksvr/alertsvr(规则命中)、alarm(记录)、notify(任务状态)。
链路二:实时视频监控
- App 调用 Java 业务接口发起拉流请求,获取访问权限与令牌
- Java 校验权限与订阅权益,返回 Go videosvr 的 WebRTC 直连地址与短效 Token
- App 与 videosvr 建立 WebRTC 通道;videosvr 向设备发送 SIP INVITE 唤醒推流
- 视频流经 ZLMediaKit 转发,全程不占用 Java 服务 IO;历史录像从 OSS 生成临时 URL
关键点:音视频走 Go 数据面;临时凭证短效过期保证隐私。
链路三:OTA 升级
- Java 管理后台创建 OTA 任务并落库(
iot/ota) - Java 发布 NATS 主题
device.down.ota.{productID}.{deviceName}通知 Go - Go dmsvr / otasvr 接收任务,向设备下发升级指令并跟踪升级状态
- 设备上报升级结果,Go 回写状态,Java 侧查询升级进度;失败支持
Confirm / Cancel / Retry
关键点:升级结果以设备上报为准;任务状态跟踪与超时重试由任务系统保障。
链路四:设备绑定 + 权益分配
- App 发起设备绑定,Java iot 创建绑定 task/session 记录中间状态
- Java member 校验用户身份,subscription 分配 Seat 占用权益(Saga 预占)
- 需要支付时 pay 完成支付/对账,支付成功回查订阅 active 状态并激活
- 绑定完成回写设备归属(
iot.binding.completed),失败走 Seat 释放补偿
关键点:绑定过程必须幂等可恢复,不以单行设备归属字段替代完整流程;所有事件统一 topic entrax-subscription-binding-saga-v1。
排查入口总表
| 场景 | 第一层 | 第二层 | 最终事实 |
|---|---|---|---|
| 设备不上线 | EMQX 连接 | dgsvr 认证日志 | device.up.status.connected 事件 |
| 轨迹缺失 | gpscodecsvr 解码 | geosvr NATS 消费 | TDengine 原始点 |
| 告警未推送 | risksvr/alertsvr 命中 | eventsvr 分发 | alarm 记录 → notify 任务状态 |
| 拉流失败 | Java 权限/权益 | videosvr SIP INVITE | ZLMediaKit 流状态 |
| 绑定卡住 | binding_task 状态 | Saga 事件(RocketMQ) | seat 占用 + 支付对账 |