在使用雲Message QueueTT 版前,需理解該產品和MQTT協議所涉及的基本概念和術語。
基本概念
執行個體(Instance)
建立購買雲Message QueueTT 版服務的實體單元,每個雲Message QueueTT 版執行個體都對應一個全域唯一的服務存取點URL。使用雲Message QueueTT 版前都需要在對應的地區( Region)建立一個執行個體,並使用對應的存取點來訪問服務。建立雲Message QueueTT 版執行個體的步驟,請參見MQTT快速入門。
Message ID
訊息的全域唯一標識,由雲Message QueueTT 版系統自動產生,唯一標識某條訊息。Message ID可用於回溯訊息軌跡,排查問題。更多資訊,請參見訊息軌跡查詢。
MQTT伺服器
雲Message QueueTT 版提供的MQTT協議互動的服務端節點,用於完成與MQTT用戶端和雲訊息佇列 RocketMQ 版各自的訊息收發。
MQTT用戶端
用於和MQTT伺服器互動的移動端節點,全稱為雲Message QueueTT 版用戶端。
P2P訊息
雲Message QueueTT 版在標準的MQTT協議基礎上提供的一種特殊訊息,該類型訊息無需普通的訂閱關係匹配,便可直接發送給指定的單個目標MQTT用戶端。更多資訊,請參見P2P訊息收發模式(MQTT)。
父級Topic(Parent Topic)
MQTT協議基於Pub/Sub模型,因此任何訊息都屬於一個Topic。根據MQTT協議,Topic存在多級,定義第一級Topic為父級Topic,使用雲Message QueueTT 版前,需先在控制台建立該父級Topic,可以在雲Message QueueTT 版控制台建立,或者直接在雲訊息佇列 RocketMQ 版的控制台建立。
子級Topic(Subtopic)
MQTT的二級Topic,甚至三級Topic都是父級Topic下的子類。使用時無需在控制台建立,直接在代碼中設定即可。命名格式為:父級Topic和各子級Topic間均使用正斜線(/)隔開,<父級Topic名稱>/<二級Topic名稱>/<三級Topic名稱>,例如,SendMessage/demo/producer。需要注意的是雲Message QueueTT 版限制父級Topic和子級Topic的總長度為64個字元,如果超出長度限制將會導致用戶端異常。
Client ID
雲Message QueueTT 版的Client ID是每個用戶端的唯一標識,要求全域唯一,使用相同的Client ID串連雲Message QueueTT 版服務會被拒絕。
Client ID由兩部分組成,組織形式為<GroupID>@@@<DeviceID>。Client ID的長度限制為64個字元,不允許使用不可見字元,具體限制請參見使用限制。
Group ID
用於指定一組邏輯功能完全一致的節點共用的組名,代表一類相同功能的裝置。Group ID需要在雲Message QueueTT 版的控制台建立。如何建立Group ID的具體步驟請參見MQTT快速入門。
Device ID
每個裝置獨一無二的標識,由業務方自己指定。需要保證全域唯一,例如每個感應器裝置的序號。
規則
用於實現雲Message QueueTT 版與其他阿里雲產品的資料互連的資源。分為以下三類:
資料流入規則:用於從您配置的阿里雲產品中讀取資料並將資料通過MQTT協議推送到MQTT用戶端,從而實現直接調用阿里雲產品的API發送資料到MQTT用戶端。更多資訊,請參見跨雲產品資料流入。
資料流出規則:用於將MQTT用戶端發送的訊息匯出到您配置的其他阿里雲產品中,從而實現直接調用雲產品的API讀取MQTT用戶端發送的訊息。更多資訊,請參見跨雲產品的資料流出。
用戶端上下線通知規則:用於將擷取的MQTT用戶端上下線事件數目據匯出至其他阿里雲產品。更多資訊,請參見MQTT用戶端上下線事件數目據流出。
網路類
ServerUrl
雲Message QueueTT 版推薦移動終端使用公網存取點,也支援內網存取點。目前雲Message QueueTT 版的接入除了支援標準協議的1883連接埠,同時還支援加密SSL、WebSocket等方式。存取點URL是在建立執行個體之後自動分配,請妥善保管。如何建立執行個體的步驟請參見MQTT快速入門。
協議相關
MQTT
一種面向物聯網和移動互連網領域的行業標準協議,適合移動終端之間的資料轉送。雲Message QueueTT 版預設支援該協議。
QoS
QoS(Quality of Service)指訊息傳輸的服務品質。分別可在訊息發送端和訊息消費端設定。
發送端的QoS設定:影響發送端發送訊息到雲Message QueueTT 版的傳輸品質。
消費端的QoS設定:影響雲Message QueueTT 版服務端投遞訊息到消費端的傳輸品質。
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
阿里雲推出的一種穩定可靠、可Auto Scaling的線上資料庫服務。在電子價簽系統中用來持久化改價等任務的狀態變更。
SLS日誌儲存
阿里雲推出的日誌儲存服務,在電子價簽系統中用來持久化儲存所有動作記錄,用於審計和溯源。