名詞解釋
在使用云消息隊列 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下的子類。使用時無需在控制臺創建,直接在代碼中設置即可。命名格式為:父級Topic和各子級Topic間均使用正斜線(/)隔開,<父級Topic名稱>/<二級Topic名稱>/<三級Topic名稱>,例如,SendMessage/demo/producer。需要注意的是云消息隊列 MQTT 版限制父級Topic和子級Topic的總長度為64個字符,如果超出長度限制將會導致客戶端異常。您可以使用MQTT.fx客戶端驗證子級Topic發布和訂閱消息。
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 版與其他阿里云產品的數據互通的資源。分為以下三類:
數據流入規則:用于從您配置的阿里云產品中讀取數據并將數據通過MQTT協議推送到MQTT客戶端,從而實現直接調用阿里云產品的API發送數據到MQTT客戶端。更多信息,請參見跨云產品數據流入。
數據流出規則:用于將MQTT客戶端發送的消息導出到您配置的其他阿里云產品中,從而實現直接調用云產品的API讀取MQTT客戶端發送的消息。更多信息,請參見跨云產品的數據流出。
客戶端上下線通知規則:用于將獲取的MQTT客戶端上下線事件數據導出至其他阿里云產品。更多信息,請參見MQTT客戶端上下線事件數據流出。
網絡類
ServerUrl
云消息隊列 MQTT 版推薦移動終端使用公網接入點,也支持內網接入點。目前云消息隊列 MQTT 版的接入除了支持標準協議的1883端口,同時還支持加密SSL、WebSocket等方式。接入點URL是在創建實例之后自動分配,請妥善保管。如何創建實例的步驟請參見MQTT快速入門。
協議相關
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日志存儲
阿里云推出的日志存儲服務,在電子價簽系統中用來持久化保存所有操作日志,用于審計和溯源。