在使用微消息队列MQTT版前,需理解该产品和MQTT协议所涉及的基本概念和术语。

基本概念

实例(Instance)

创建购买微消息队列MQTT版服务的实体单元,每个微消息队列MQTT版实例都对应一个全局唯一的服务接入点URL。使用微消息队列MQTT版前都需要在对应的地域( Region)创建一个实例,并使用对应的接入点来访问服务。创建微消息队列MQTT版实例的步骤,请参见MQTT快速入门

Message ID
消息的全局唯一标识,由微消息队列MQTT版系统自动生成,唯一标识某条消息。Message ID可用于回溯消息轨迹,排查问题。更多信息,请参见轨迹查询
MQTT服务器
微消息队列MQTT版提供的MQTT协议交互的服务端节点,用于完成与MQTT客户端和消息队列RocketMQ版各自的消息收发。
MQTT客户端
用于和MQTT服务器交互的移动端节点,全称为微消息队列MQTT版客户端。
P2P消息
微消息队列MQTT版在标准的MQTT协议基础上提供的一种特殊消息,该类型消息无需普通的订阅关系匹配,便可直接发送给指定的单个目标MQTT客户端。更多信息,请参见P2P消息收发模式(MQTT)
父级Topic(Parent Topic)
MQTT协议基于Pub/Sub模型,因此任何消息都属于一个Topic。根据MQTT协议,Topic存在多级,定义第一级Topic为父级Topic,使用微消息队列MQTT版前,需先在控制台创建该父级Topic,可以在微消息队列MQTT版控制台创建,或者直接在消息队列RocketMQ版的控制台创建。
子级Topic(Subtopic)
MQTT的二级Topic,甚至三级Topic都是父级Topic下的子类。使用时,直接在代码里设置,无需创建。需要注意的是微消息队列MQTT版限制父级Topic和子级Topic的总长度为64个字符,如果超出长度限制将会导致客户端异常。
Client ID

微消息队列MQTT版的Client ID是每个客户端的唯一标识,要求全局唯一,使用相同的Client ID连接微消息队列MQTT版服务会被拒绝。

Client ID由两部分组成,组织形式为<GroupID>@@@<DeviceID>。Client ID的长度限制为64个字符,不允许使用不可见字符,具体限制请参见使用限制

Group ID
用于指定一组逻辑功能完全一致的节点共用的组名,代表一类相同功能的设备。Group ID需要在微消息队列MQTT版的控制台创建。如何创建Group ID的具体步骤请参见MQTT快速入门
Device ID
每个设备独一无二的标识,由业务方自己指定。需要保证全局唯一,例如每个传感器设备的序列号。
规则
用于实现微消息队列MQTT版V3.x.x版本与其他阿里云产品的数据互通的资源。分为以下三类:
  • 数据流入规则:用于从您配置的阿里云产品中读取数据并将数据通过MQTT协议推送到MQTT客户端,从而实现直接调用阿里云产品的API发送数据到MQTT客户端。更多信息,请参见跨云产品数据流入
  • 数据流出规则:用于将MQTT客户端发送的消息导出到您配置的其他阿里云产品中,从而实现直接调用云产品的API读取MQTT客户端发送的消息。更多信息,请参见跨云产品的数据流出
  • 客户端上下线通知规则:用于将获取的MQTT客户端上下线事件数据导出至其他阿里云产品。更多信息,请参见MQTT客户端上下线事件数据流出

网络类

ServerUrl

微消息队列MQTT版推荐移动终端使用公网接入点,也支持内网接入点。目前微消息队列MQTT版的接入除了支持标准协议的1883端口,同时还支持加密SSL、WebSocket等方式。接入点URL是在创建实例之后自动分配,请妥善保管。如何创建实例的步骤请参见MQTT快速入门

协议相关

MQTT
一种面向物联网和移动互联网领域的行业标准协议,适合移动终端之间的数据传输。微消息队列MQTT版默认支持该协议。
QoS
QoS(Quality of Service)指代消息传输的服务质量。它包括以下级别:
  • QoS0代表最多分发一次
  • QoS1代表至少达到一次
  • QoS2代表仅分发一次
cleanSession
cleanSession标志是MQTT协议中对一个客户端建立TCP连接后是否关心之前状态的定义。具体语义如下:
  • cleanSession=true:客户端再次上线时,将不再关心之前所有的订阅关系以及离线消息。
  • cleanSession=false:客户端再次上线时,还需要处理之前的离线消息,而之前的订阅关系也会持续生效。

QoS和cleanSession搭配使用时需注意以下几点:

  • MQTT要求每个客户端每次连接时的cleanSession标志必须固定,不允许动态变化,否则会导致离线消息的判断有误。
  • MQTT目前对外QoS2消息不支持非cleanSession,如果客户端以QoS2方式订阅消息,即使设置cleanSession=false也不会生效。
  • P2P消息的cleanSession判断以接收方客户端的配置为准。

QoS和cleanSession的不同组合产生的结果如表 1所示。

表 1. QoS和cleanSession的组合关系
QoS级别 cleanSession=true cleanSession=false
QoS0 无离线消息,在线消息只尝试推一次。 无离线消息,在线消息只尝试推一次。
QoS1 无离线消息,在线消息保证可达。 有离线消息,所有消息保证可达。
QoS2 无离线消息,在线消息保证只推一次。 暂不支持。

解决方案相关

RTC
实时通信,一种主要面向语音、视频领域的网络通信方式。目前比较主流的应用场景是语音通话、视频通话、视频会议等。
RTC服务器
阿里云音视频通信RTC提供的音视频相关媒体通道服务。
音视频业务管控服务器
音视频通信系统中的管控节点,简称音视频管控服务。音视频管控服务需要由业务方自行建设,用于控制所有音视频通信会话的生命周期。该管控节点一般部署在云端,使用阿里云的基础产品搭建。
音视频移动端应用
音视频通信系统中最终用户持有的终端App,简称终端App。终端用户使用该App发起或者参与音视频通话。
智能AP
市面常见的智能路由器等网络设备,支持应用编程,可以同时承担互联网接入以及局域网设备控制等工作。
电子价签
实际分布在商场超市等场所中的电子显示屏幕,一般使用蓝牙、ZigBee等无线传感网络协议和智能AP节点组网。
电子价签管控服务
电子价签系统中用于管理电子屏幕显示内容的后台服务,主要承担改价等人工操作的任务管理和查询工作。
RDS
阿里云推出的一种稳定可靠、可弹性伸缩的在线数据库服务。在电子价签系统中用来持久化改价等任务的状态变更。
SLS日志存储
阿里云推出的日志存储服务,在电子价签系统中用来持久化保存所有操作日志,用于审计和溯源。