Topic管理
MQTT协议基于Pub/Sub模型,因此任何消息都属于一个Topic。根据MQTT协议,Topic存在多级,定义第一级Topic为父级Topic,在使用云消息队列 MQTT 版前,需先创建该父级Topic资源。
注意事项
Topic不能跨实例使用,例如不能使用实例B的接入点订阅创建在实例A中的Topic。
子级 Topic 无需在控制台手动创建,只需在客户端代码中声明即可自动生效(自动创建);父级 Topic 必须通过控制台或 API 预先创建。有关父子级 Topic 的详细信息,请参见基本概念。
每个父级Topic下仅允许100个通配符订阅关系。详情请参见客户端限制。
Group 用于设备组标识和权限控制,Topic 是消息通道,二者独立管理,创建 Topic 时无需关联 Group。
在同一实例下区分测试和生产环境时,建议为不同环境配置独立的父级 Topic、Group ID 和 Client ID 进行逻辑隔离。发送和订阅消息时,切勿混用不同环境的资源,否则可能导致消息互相干扰、客户端被踢下线或收错消息等问题。
创建Topic
登录云消息队列 MQTT 版控制台,并在左侧导航栏单击实例列表。
在顶部菜单栏选择目标地域,然后在实例列表中单击实例名称进入实例详情页面。
- 在左侧导航栏单击Topic 管理,然后在页面左上角,单击创建 Topic。
- 在创建Topic面板中,输入要创建的Topic名称和描述,然后在左下角单击确定。
删除Topic
- 进入Topic 管理页面。
- 在Topic列表中,找到需要删除的目标Topic,在其操作列中,选择。
- 在弹出的对话框中单击确认。
更新Topic
- 进入Topic 管理页面。
- 在Topic列表中,找到需要更新的目标Topic,单击Topic名称。
- 在Topic 详情页面的基础信息区域中,单击描述后的编辑,在文本框中输入修改后的Topic描述,并单击确定完成修改。
查询Topic
- 进入Topic 管理页面。
- 在Topic列表中,找到需要查询的目标Topic,单击Topic名称进入Topic 详情页面。
常见问题
如何限制微消息队列 MQTT 版的流量进入?
云消息队列 MQTT 版本身不提供直接的流量入口限制规则。如需紧急阻断流量,可通过以下方式实现:
删除生成用户名密码的 AccessKey(AK)。
警告若该 AK 被其他产品共用,请勿删除。
删除对应的 Topic 或 Group 资源。
警告删除后数据不可恢复。
使用 + 通配符订阅多个分片 Topic 时部分消息无法接收怎么办?
该问题通常与客户端订阅数量限制或订阅 ACK 机制有关。建议按以下方向排查:
检查客户端订阅关系数量是否超过限制。每个父级 Topic 下仅允许 100 个通配符订阅关系。
确认客户端是否正确处理了订阅 ACK,避免因未 ACK 导致后台订阅状态异常。
如调整订阅数量后仍存在问题,请提交工单并提供 Client ID 及具体 Topic 信息,以便进一步排查。
相关文档
您还可以为Topic创建数据流入或流出规则,更多信息,请参见规则管理。
创建Topic和Group后可进行消息收发,详细信息,请参见快速使用MQTT的Java SDK收发消息(终端和云端消息收发)。