Topic 匹配器
协议校验
MQTT Topic 匹配器
检查 Topic Filter 是否符合 MQTT 通配符规则,并确认它是否匹配目标 Topic Name。
在发布设备代码、Broker ACL、仪表盘或规则引擎前,用 Topic Matcher 检查 MQTT 通配符规则。
通配符规则
MQTT 通配符简单,但很容易误用。
`+` 匹配一个 Topic 层级,`#` 只能在最后一层匹配多个层级。Topic Name 本身不能包含通配符。
- `factory/+/temperature` 只匹配一个中间层
- `factory/#` 匹配 factory 下所有后代
- `factory/#/temperature` 无效
- 不以 `$` 开头的 Filter 不匹配 `$SYS`
使用场景
Filter 经常会变成权限。
Topic Filter 往往会被复制到固件、Dashboard、流处理和 ACL 中。一个通配符错误可能暴露过多数据,也可能漏掉关键遥测。
- 设计租户安全的 Topic Tree
- 测试 Dashboard 订阅
- 审查 Broker ACL
- 部署前确认规则引擎输入
命名治理
好的 Topic 设计让测试更可靠。
建议使用 tenant、product、device、signal、event type 等稳定层级,避免把多个含义塞进单层字符串。
- 保持 Topic 层级稳定
- 设备 ID 避免包含斜杠
- $SYS 只用于系统指标
- 单独文档化 Retained Topic