全部产品
Search
文档中心

云消息队列 MQTT 版:名词解释

更新时间:Aug 07, 2024

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

基本概念

  • 实例(Instance)

    • 创建购买云消息队列 MQTT 版服务的实体单元,每个云消息队列 MQTT 版实例都对应一个全局唯一的服务接入点URL。使用云消息队列 MQTT 版前都需要在对应的地域( Region)创建一个实例,并使用对应的接入点来访问服务。创建云消息队列 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下的子类。使用时无需在控制台创建,直接在代码中设置即可。命名格式为:父级Topic和各子级Topic间均使用正斜线(/)隔开,<父级Topic名称>/<二级Topic名称>/<三级Topic名称>,例如,SendMessage/demo/producer。需要注意的是云消息队列 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的具体步骤请参见创建资源

  • Device ID

    • 每个设备独一无二的标识,由业务方自行指定。需要保证全局唯一,例如每个传感器设备的序列号。

网络类

  • ServerUrl

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

协议相关

  • MQTT

    • 一种面向物联网和移动互联网领域的行业标准协议,适合移动终端之间的数据传输。云消息队列 MQTT 版默认支持该协议。

  • QoS

    • QoS(Quality of Service)指消息传输的服务质量。分别可在消息发送端和消息消费端设置。

      • 发送端的QoS设置:影响发送端发送消息到云消息队列 MQTT 版的传输质量。

      • 消费端的QoS设置:影响云消息队列 MQTT 版服务端投递消息到消费端的传输质量。

      QoS包括以下级别:

      • 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的不同组合产生的结果如QoS和cleanSession的组合关系所示。

表 1. QoS和cleanSession的组合关系

QoS级别

cleanSession=true

cleanSession=false

QoS0

无离线消息,在线消息只尝试推一次。

有离线消息,在线消息只尝试推一次。

QoS1

无离线消息,在线消息保证可达。

有离线消息,所有消息保证可达。

QoS2

无离线消息,在线消息保证可达且只接收一次。

暂不支持。

解决方案相关

  • RTC

    • 实时通信,一种主要面向语音、视频领域的网络通信方式。目前比较主流的应用场景包括语音通话、视频通话、视频会议等。

  • RTC服务器

    • 阿里云音视频通信RTC提供的音视频相关媒体通道服务。

  • 音视频业务管控服务器

    • 音视频通信系统中的管控节点,简称音视频管控服务。音视频管控服务需要由业务方自行建设,用于控制所有音视频通信会话的生命周期。该管控节点一般部署在云端,使用阿里云的基础产品搭建。

  • 音视频移动端应用

    • 音视频通信系统中最终用户持有的终端App,简称终端App。终端用户使用该App发起或者参与音视频通话。

  • 智能AP

    • 市面常见的智能路由器等网络设备,支持应用编程,可以同时承担互联网接入以及局域网设备控制等工作。

  • 电子价签

    • 实际分布在商场、超市等场所中的电子显示屏幕,一般使用蓝牙、ZigBee等无线传感网络协议和智能AP节点组网。

  • 电子价签管控服务

    • 电子价签系统中用于管理电子屏幕显示内容的后台服务,主要承担改价等人工操作的任务管理和查询工作。

  • RDS

    • 阿里云推出的一种稳定可靠、可弹性伸缩的在线数据库服务。在电子价签系统中用来持久化改价等任务的状态变更。

  • SLS日志存储

    • 阿里云推出的日志存储服务,在电子价签系统中用来持久化保存所有操作日志,用于审计和溯源。