MQTT快速入門

更新時間:
Copy as MD

作為使用和熟悉產品功能的入門指導,本文提供如何快速使用Message QueueTT 版通過預設支援的MQTT協議收發訊息的步驟。

對於非MQTT協議的接入,例如新能源,您必須首先購買Message QueueTT 版企業鉑金版,並通過專屬通道享受對應的文檔和支援人員服務。

注意事項

Message QueueTT 版需搭配後端訊息儲存隊列一起使用,具體說明如下:

  • Message QueueTT 版執行個體是一個無狀態網關類型執行個體,用來完成IoT移動情境下的用戶端串連維持和訊息轉寄,本身並不提供訊息資料持久化功能,具體的訊息儲存和訊息資料持久化還需要配置一個訊息儲存執行個體。

  • 現階段要求每個Message QueueTT 版執行個體(網關執行個體)必須綁定一個儲存執行個體(雲訊息佇列 RocketMQ 版執行個體)使用。

  • 訊息儲存執行個體目前只支援雲訊息佇列 RocketMQ 版類型的後端儲存執行個體。

  • 目前您在同一個地區(Region)可以建立有限數量的Message QueueTT 版執行個體,且一個Message QueueTT 版執行個體僅可綁定一個相應的雲訊息佇列 RocketMQ 版執行個體。同一地區的執行個體數量上限參考控制台具體提示。

在使用Message QueueTT 版時,請注意以下網路訪問限制:

只有在同一個地區下的同一個執行個體中的TopicGroup ID才能互連,例如,某Topic建立在華北2(北京)地區下的執行個體A中,那麼該Topic只能被在華北2(北京)地區下的執行個體A中建立的Group ID對應的Message QueueTT 版用戶端(下文簡稱用戶端)訪問。

流程

快速入門流程展示了如何使用Message QueueTT 版收發訊息的流程。

圖 1. 快速入門流程快速入門流程圖

快速入門流程所示,使用用戶端收發訊息需要先建立相應資源,否則Message QueueTT 版伺服器會拒絕非法的Client ID的串連。

前提條件

  • 您已經開通母產品雲訊息佇列 RocketMQ 版的服務。如未開通,請先開通該服務。

  • 您已經擁有了阿里雲AccessKey(AK)。詳細資料,請參見擷取AccessKey

步驟一:建立資源

這裡所說的資源套件括:

  • Message QueueTT 版執行個體(用於用戶端串連維持和訊息轉寄)

  • 訊息儲存執行個體(用於訊息的儲存,目前只支援雲訊息佇列 RocketMQ 版執行個體)

  • Topic(用於訊息發送和訂閱的訊息一級主題,即父級Topic)

  • Group ID(用於用戶端識別)

  1. 選擇地區。

    請根據您的業務需求確定需要把資源建立在哪個地區。

    1. 登入Message QueueTT版控制台

    2. 在頂部功能表列選擇地區,例如華北2(北京)地區,即您要將資源建立在哪個地區。

  2. 建立Message QueueTT 版執行個體。

    首先,您需要建立Message QueueTT 版執行個體。建立前,請注意以下幾點:

    • 您在每個地區下,所有類型的執行個體有總數量的限制,具體限制參考控制台的提示。

    • 請根據業務情境估算TPS、串連數和訂閱關係,選擇合理的規格。對於預付費類型(訂用帳戶)的執行個體,如果選擇過小的規格會觸發服務限流影響業務。

    • 購買的基礎版執行個體即時生效;購買的企業鉑金版執行個體需要時間部署,執行個體可運行時會通知您。

    請按以下步驟建立Message QueueTT 版執行個體:

    1. 在左側導覽列,單擊概覽

    2. 在執行個體列表頁面,單擊建立執行個體

    3. 在購買頁面,按需選擇Message QueueTT 版執行個體版本以及相應的配置,然後根據頁面提示完成購買。

    回到控制台概覽頁面的執行個體列表,您可以看到已購買(建立)的Message QueueTT 版執行個體。

  3. 建立並綁定資料存放區執行個體。

    建立完Message QueueTT 版執行個體後,您還需要建立用於儲存Topic和訊息的執行個體(目前僅支援雲訊息佇列 RocketMQ 版的執行個體),然後將建立的雲訊息佇列 RocketMQ 版的執行個體與Message QueueTT 版執行個體進行一對一的綁定。

    綁定關係有以下限制:

    • 一個Message QueueTT 版執行個體僅允許綁定一次,綁定成功後即不允許更改。

    • 一個儲存型執行個體僅允許綁定到一個Message QueueTT 版執行個體,不允許一對多綁定。

    • 綁定的這兩個執行個體,命名空間類型必須一致,即獨享命名空間的執行個體不允許和非獨享命名空間的執行個體建立綁定關係。

    • 如果提前刪除Message QueueTT 版執行個體綁定的儲存執行個體,則Message QueueTT 版執行個體會不可用。

    請按以下步驟建立並綁定儲存執行個體:

    1. 在左側導覽列單擊概覽,選擇您剛建立的Message QueueTT 版執行個體,單擊繼續配置

    2. 訊息持久化配置對話方塊,按執行個體情況和需求選擇對應選項。

      • 如果您已購買雲訊息佇列 RocketMQ 版執行個體,請選擇選擇已有執行個體。選擇該選項後顯示的是您已建立(購買)的訊息儲存執行個體列表。然後單擊您已有的雲訊息佇列 RocketMQ 版訊息儲存執行個體,再單擊確認完成綁定。

      • 如果您還未購買雲訊息佇列 RocketMQ 版執行個體,請選擇以下選項:

        • 建立共用執行個體:建立雲訊息佇列 RocketMQ 版標準版執行個體。請輸入執行個體名和描述,然後單擊確認,完成建立。

        • 購買鉑金版執行個體:建立雲訊息佇列 RocketMQ 版鉑金版執行個體。選擇購買鉑金版執行個體,單擊立即前往購買,然後按照頁面提示完成購買(即建立)。

        完成建立後,重複步驟i和步驟ii,並選擇選擇已有執行個體,然後單擊剛剛建立的雲訊息佇列 RocketMQ 版執行個體,再單擊確認完成綁定。

  4. 建立Topic。

    使用MQTT協議收發訊息,需要建立MQTT的父級Topic(Parent Topic)。多級子Topic無需建立,直接在代碼中使用即可。

    Message QueueTT 版執行個體和儲存執行個體之間會建立一一綁定關係,因此,建立的Topic其實是建立到儲存執行個體上,在Message QueueTT 版控制台僅僅做一層映射關係,所有的Topic操作都可以同時使用儲存執行個體的操作習慣完成。

    如果之前在使用雲訊息佇列 RocketMQ 版時已經建立過Topic,也可以直接使用。如果沒有建立過,請按照以下步驟進行建立:

    1. 在左側導覽列單擊訊息儲存

    2. Topic管理頁面,選擇您剛建立的Message QueueTT 版執行個體,單擊建立Topic

    3. 建立Topic對話方塊,輸入Topic名稱、選擇該Topic用於儲存和收發的訊息類型、輸入備忘資訊,然後單擊確認

    說明

    如果需要使用Message QueueTT 版用戶端發送順序訊息,則此處需要選用順序Topic,但Message QueueTT 版用戶端的消費情境暫時還不支援強順序。

  5. 建立Group ID。

    Message QueueTT 版Group ID用於指定一組邏輯功能完全一致的節點共用的組名,代表一類相同功能的裝置。Group IDDevice ID共同組成用於識別MQTT用戶端的Client ID。更多資訊請參見名詞解釋

    1. 在左側導覽列,單擊Group管理

    2. Group管理頁面,選擇您剛建立的Message QueueTT 版執行個體,單擊建立Group ID

    3. 建立Group ID 對話方塊中,輸入需要建立的Group ID,然後單擊確定

    建立完成後,在Group管理頁面中可以看到建立的Group ID。該頁面顯示當前地區下您擁有的所有Group ID。

    說明
    • 如果Group ID不再使用,請及時刪除。

    • Group ID僅限建立帳號使用,主帳號建立的Group ID子帳號無法使用,子帳號的Group ID必須單獨建立。

步驟二:擷取存取點

在使用SDK收發訊息時需要填寫Message QueueTT 版執行個體存取點。Message QueueTT 版執行個體的存取點由“存取點網域名稱+連接埠”組成。

Message QueueTT 版執行個體和雲訊息佇列 RocketMQ 版執行個體被成功綁定後,存取點資訊便立即顯示在擷取存取點資訊地區,您可直接擷取該存取點資訊。

成功綁定Message QueueTT 版執行個體和雲訊息佇列 RocketMQ 版執行個體後,也可按照以下步驟擷取存取點:

  1. 在控制台頂部導覽列選擇剛建立的資源所在地區,然後在左側導覽列單擊執行個體詳情

  2. 在預設顯示的執行個體詳情頁面,選擇您建立的Message QueueTT 版執行個體名稱,單擊執行個體資訊頁簽。

  3. 執行個體資訊頁簽的擷取存取點資訊地區,查看所需的存取點網域名稱。在該地區找到公網存取點欄位,單擊右側複製擷取存取點地址。

Message QueueTT 版同時提供了公网接入点VPC 接入点
  • 公网接入点為本地公網環境訪問的IP地址,一般用於物聯網和移動互連網情境中;
  • VPC 接入点為雲上私網訪問的IP地址,一般用於雲端應用接入Message QueueTT 版
重要 用戶端使用存取點串連服務時務必使用網域名稱接入,不得直接使用網域名稱背後的IP地址直接連接,因為IP地址隨時會變化。在以下使用方式中出現的問題Message QueueTT 版產品方概不負責:
  • 用戶端不使用網域名稱接入而是使用IP地址接入,產品方更新了網域名稱解析導致原有IP地址失效。
  • 用戶端網路對IP地址設定網路防火牆策略,產品方更新了網域名稱解析後新IP地址被您的防火牆策略攔截。

連接埠

目前Message QueueTT 版除了支援標準的MQTT on TCP協議,還支援MQTT SSL、WebSocket、WebScoket SSL/TLS、Flash。對應的服務連接埠如連接埠說明所示,請根據實際需求修改。

說明

Message QueueTT 版目前提供的是單向SSL加密,所以無需用戶端上傳認證。其次,服務端的認證會隨著請求握手自動下發,並且是和存取點網域名稱強綁定的,所以目前不支援自訂認證加密。

表 1. 連接埠說明

標準協議連接埠

SSL連接埠

WebSocket連接埠

WebSocket SSL/TLS連接埠

Flash連接埠

1883

8883

80

443

843

步驟三:調用SDK發送和訂閱訊息

  1. 下載用戶端的SDK。各語言SDK的下載地址,請參見SDK下載

    由於Message QueueTT 版預設支援的是標準的MQTT協議,因此用戶端SDK都是推薦開源的第三方SDK,如果有其他語言沒有覆蓋,可以自行搜尋MQTT相容的SDK測試。

  2. 下載Demo工程,以查看對應的參數說明,然後您可以運行Demo發送和訂閱訊息。Demo下載地址,請參見Demo工程

    目前的Demo程式庫只覆蓋了一部分主流語言,後續會陸續更新。如果沒有覆蓋對應的開發語言,可以參考Java語言的Demo來修改。Demo工程僅提供一個基本的功能展示,具體應用到線上環境,務必修改所有參數。

更多資訊

除了通過調用SDK/API發送訊息,您可以在控制台發送訊息來快速驗證Topic的可用性,具體操作步驟如下:

  1. 在控制台左側導覽列,單擊訊息儲存

  2. 訊息儲存頁面的Topic列表,找到您剛剛建立的Topic,單擊右側操作列的發送

  3. 發送訊息對話方塊中設定訊息屬性並輸入訊息內容,然後單擊確定

    控制台會返回訊息發送成功通知和相應的Message ID。