- 文档首页
云原生消息引擎
MQTT 实例用户指南
Dashboard指南
管理
MQTT 高级特性
主题重写
主题重写
MQTT 支持主题重写功能,根据用户配置的重写规则在客户端订阅、发布时将原有主题重写为新的目标主题。
在某些场景中,修改业务主题可能会非常困难,此时可以使用主题重写功能。通过设置主题重写规则,在客户端订阅、发布时将原有主题重写为新的目标主题。
启用主题重写后,MQTT 将使用数据包中的主题来依次匹配重写规则中的原始主题。匹配成功之后,正则表达式提取原始主题中的信息,然后用目标表达式替换并生成一个新的主题。
- MQTT 会按照重写规则的配置顺序来执行主题重写。当一个主题可以同时匹配多个重写规则的原始主题时,也只使用第一个匹配的规则来重写该主题。
- 如果规则中的正则表达式与 MQTT 数据包的主题不匹配,则重写失败,其他规则将不会被用来重写。
- 在 Dashboard 的导航栏选择管理 > MQTT 高级特性 > 主题重写。
- 在弹出的对话框中,配置主题重写规则参数,然后单击添加。
-
-
假设您已经配置了多个主题重写规则,配置如下:
规则①
- 正则表达式:^test/(.+)/topic/(.+)$
规则②
如果您在客户端订阅的主题有test/1、test/mqtt/topic/1、doc/test/1,实际订阅的主题描述如下:
- test/1主题不能匹配任何重写规则的原始主题,所以不执行主题重写规则,实际订阅的主题就为test/1。
- test/mqtt/topic/1主题匹配到规则①中的原始主题,MQTT 执行主题重写规则,通过正则表达式匹配到元素 [mqtt、1],将匹配的第二个元素带入目标主题 test/topic/$2,所以最后实际订阅主题为test/topic/1。
- doc/test/1主题匹配到规则②中的原始主题,执行主题重写规则,经过正则表达式替换,最后实际订阅主题为mqtt/test/1。
最近更新时间:2025.08.04 17:30:03