首页 / 数据流转 / 设备数据流

数据流总览

上行:设备 ─MQTT/TCP─► EMQX ─► dgsvr(认证)─► gpscodecsvr(解码)
      ─► device.up.*(NATS)─► geosvr / dmsvr / Java 订阅
下行:Java / Go ─► device.down.*(NATS)─► dmsvr/dgsvr ─► EMQX ─► 设备

上行数据流

类型链路落点
GPS 原始点dgsvr → gpscodecsvr → device.up.thing → geosvrTDengine GPS 传感流水
物模型属性/事件dgsvr → device.up.thing.*application.device.*.report.thing.*Java iot / 规则引擎 / 业务告警
状态(上下线)dgsvr → device.up.status.connected/disconnectedRedis 在线状态 + Java 消费
OTA 结果设备 → device.up.ota.*otasvr 状态更新
日志设备 → device.up.log.*调试日志收集

下行数据流

类型链路说明
指令下发Java/Go → device.down.thing.* → dmsvr/dgsvr → EMQX → 设备属性设置、服务调用
远程配置device.down.config.*配置下发
OTAdevice.down.ota.*升级指令 + 固件下载凭证
影子同步device.down.shadow.*离线指令缓存,上线补发

物模型转换

  • 私有协议 → 标准物模型:gpscodecsvr 将 GPS Tracker Protobuf 载荷转成属性/事件 JSON(internal/codec/gps)。
  • 标准物模型 → 私有协议:下行指令反向编码。
  • 新增设备型号优先扩展编解码层,保持上层物模型契约稳定。

状态与遥测

  • 在线状态:dgsvr 维护 Redis Hash(things:device:status:{productID}:{deviceName}),geosvr 维护 Redis ZSET 时间序。
  • 心跳/遥测:写 TDengine 心跳超级表;上下线心跳先入内存 Buffer 批量写回(write_storm_buffer,万级并发削峰)。
  • 设备影子:dmsvr shadowIndexLogic 维护期望/当前状态,离线指令缓存。