首页 / Java 平台(cloud-java) / iot 设备

职责概览

IoT 业务模块 独立端口 48095 / gRPC 49095,管理产品与物模型、设备档案、设备绑定(Saga)、预绑定、设备分享、数据规则、场景规则、OTA 与设备消息。

模块分 api / core / server 三层,其中 core 承载消息总线(local / Redis Stream / RocketMQ / NATS)与共享 gRPC 代码。

接口清单

分组Controller说明
产品IotProductControllerIotProductCategoryControllerAppIotProductController产品与品类管理
物模型IotThingModelControllerAppIotThingModelController物模型定义(属性/事件/服务)
设备IotDeviceControllerIotDevicePropertyControllerIotDeviceMessageControllerIotDeviceGroupControllerAppIotDeviceControllerAppTestDeviceController设备档案、属性、消息、分组;App 设备管理与测试设备
绑定IotBindingTaskControllerIotDevicePreBindControllerIotBindSessionControllerAppIotBindingController绑定任务、预绑定、绑定会话(Saga 中间状态)
分享IotDeviceShareControllerAppIotDeviceShareController设备分享(from/to 用户 + 状态 + 有效期)
规则IotDataRuleControllerIotDataSinkController数据规则与数据出口配置
OTAIotOtaFirmwareControllerIotOtaTaskControllerIotOtaTaskRecordController固件、升级任务与任务记录
统计/告警IotStatisticsControllerIotAlertRecordControllerIotAlertConfigController设备统计与 IoT 告警
公共数据IotDeviceCdControllerIotProductCdControllerIotDeviceGroupCdControllerIotProductCategoryCdController字典/公共数据接口

关键实现

绑定 Saga

  1. 创建绑定任务(iot_binding_task)并发布 Seat 预占请求(RocketMQ topic entrax-subscription-binding-saga-v1
  2. IotBindingSagaListener 接收 seat.reserved / payment-required / reserve-failed / paid.activation-completed / seat.released 结果
  3. IotBindingTaskService.handleSubscriptionResult 驱动任务状态;失败由 IotBindingRetryJob 重试
  4. 业务提交后由 IotBindingOutboxJob 可靠发布 Outbox 消息

消息与规则

消费者/实现说明
IotDeviceMessageSubscriber设备消息订阅(物模型上报、状态变更)
IotDataRuleMessageSubscriberIotSceneRuleMessageSubscriber数据规则与场景规则触发
messagebus(local / Redis Stream / RocketMQ / NATS)消息总线多实现,按 profile 启用
IotOtaUpgradeJobOTA 升级任务调度(@XxlJob)

数据与维护注意

核心表:iot_*(23 张),关键表 iot_bind_sessioniot_binding_taskiot_device_shareiot_device、Outbox/Inbox 表。

  • 绑定任务幂等约束:租户内 task_nopay_order_no 与未完成 session/pre-bind/device guard 唯一。
  • 设备归属以绑定流程结果为准,不以单行 owner_user_id 替代完整流程。
  • 设备密钥、产品密钥属敏感信息,不得写日志;消息总线切换实现时确认消费者注册与 Stream/Group 配置。