hingsKit开发指南-Topic设计

概述

Topic是消息发布(Pub)者和订阅(Sub)者之间的传输中介。设备可通过Topic实现消息的发送和接收,从而实现服务端与设备端的通信。为方便海量设备基于Topic进行通信,简化授权操作,物联网平台定义了产品Topic类和设备Topic。本文介绍产品和设备Topic的定义、使用和分类。

物联网Topic是实现物联网应用的重要机制,需要设计有效的Topic格式、层级结构、命名规则、权限控制和数据格式,以便更好地组织和管理物联网设备、传感器、应用程序等实体或事件。

常用Topic汇总

功能设备类型发布主题订阅主题平台设备
属性(温度、湿度)遥测直连/网关设备v1/devices/me/telemetryv1/devices/me/telemetry订阅发布
网关子设备v1/gateway/telemetryv1/gateway/telemetry订阅发布
服务端命令下发到设备端网关/直连/网关子设备v1/devices/me/rpc/request/$request_idv1/devices/me/rpc/request/+发布订阅
设备端响应命令到服务端网关/直连/网关子设备v1/devices/me/rpc/response/$request_idv1/devices/me/rpc/response/+订阅发布
事件上报网关/直连/网关子设备v1/devices/event/${deviceId}或${deviceName}/${identifier}v1/devices/event/${deviceId}或${deviceName}/${identifier}订阅发布

设备Hash、分区计算规则

设备的hash的计算规则

默认使用 murmur3_128进行计算,通过UUID128位值的 高64位、低64位 来计算Hash值。

💡提示

如果要更换计算规则,修改application里面的thingsboard.yml配置值 hash_function_name 即可

设备的Partition的计算规则

服务类型:TB_CORE, TB_RULE_ENGINE, TB_TRANSPORT, JS_EXECUTOR

TB_CORE 的分区大小默认为10,其他服务类型的分区根据队列大小决定。

计算规则:分区值 = Hash值 % 分区大小 绝对值

代码示例

hingsKit开发指南-Topic设计