本文介绍如何快速使用微消息队列MQTT版的Java SDK实现MQTT客户端消息的自发自收。本场景示例不涉及跨云产品的数据互通。
背景信息
微消息队列MQTT版最简单的使用场景即是MQTT客户端消息的自发自收。此场景下可使用多语言的第三方开源SDK来实现消息收发。目前支持的语言详情请参见SDK 下载。
本文以公网环境中的Java SDK为例说明如何实现MQTT客户端消息的自发自收。

如上图所示,在物联网和移动互联网场景中,您部署在公网的MQTT客户端采用Java语言开发,需要与阿里云MQTT服务端实现消息收发。那么您需要在您的MQTT客户端代码中,嵌入Java SDK的相应代码,并在SDK中配置相应参数以与MQTT服务端通信。
网络访问
微消息队列MQTT版同时提供了公网接入点、经典网接入点和 VPC 接入点。接入点说明如下:
- 在物联网和移动互联网的场景中,客户端推荐使用公网接入点接入。
- 经典网接入点和 VPC 接入点仅供一些特殊场景使用。因为一般而言,涉及部署在云端服务器上的应用的场景,建议使用服务端消息产品例如消息队列RocketMQ版实现。
注意 客户端使用接入点连接服务时务必使用域名接入,不得直接使用域名背后的 IP 地址直接连接,因为 IP 地址随时会变化。在以下使用情况中出现的问题微消息队列MQTT版产品方概不负责:
- 客户端不使用域名接入而是使用 IP 地址接入,产品方更新了域名解析导致原有 IP 地址失效。
- 客户端网络对 IP 地址设置网络防火墙策略,产品方更新了域名解析后新 IP 地址被您的防火墙策略拦截。
本文以公网接入点为例。微消息队列MQTT版与消息队列RocketMQ版的应用场景对比和消息属性映射关系请参见以下文档:
使用流程
调用MQTT的Java SDK收发消息的流程如下图所示。

步骤一:创建实例并获取接入点
步骤二:创建父级Topic
MQTT协议支持多级Topic,父级Topic需在控制台或调用OpenAPI创建,子级Topic无需创建,Topic详情请参见名词解释。本文以在控制台创建父级Topic为例。
步骤三:创建Group ID
Group ID详情请参见名词解释。
步骤四:调用Java SDK收发消息
结果验证
完成消息收发后,您可在微消息队列MQTT版控制台查询轨迹以验证消息是否发送并接收成功。详情请参见查询消息轨迹。
在文档使用中是否遇到以下问题
更多建议
匿名提交