全部產品
Search
文件中心

ApsaraMQ for MQTT:名詞解釋

更新時間:Aug 09, 2024

在使用雲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日誌儲存

    • 阿里雲推出的日誌儲存服務,在電子價簽系統中用來持久化儲存所有動作記錄,用於審計和溯源。