如果當前產品下裝置與物聯網平台之間的上下行訊息量大於1,000 QPS,需要將裝置上報至物聯網平台的資料轉寄至您商務服務器的應用中進行消費(例如過濾、分析、儲存等),可以使用雲產品流轉功能將物聯網平台資料轉寄到訊息佇列(RocketMQ)中進行消費,以實現訊息從裝置、物聯網平台、RocketMQ到應用伺服器之間的全鏈路高可靠傳輸能力。本文介紹使用雲產品流轉功能將裝置資料轉寄到RocketMQ中消費的完整流程。
工作原理
雲產品流轉可將裝置訊息轉寄到RocketMQ SDK用戶端消費。
商務服務器:使用RocketMQ SDK註冊一個消費者,用於接收物聯網平台轉寄到RocketMQ中的訊息。
物聯網平台:配置雲產品流轉將裝置訊息轉寄到RocketMQ。
雲訊息佇列RocketMQ版:RocketMQ SDK註冊的消費者擷取訊息時會觸發服務端的動態過濾計算,RocketMQ根據該消費者上報的過濾條件的運算式進行匹配,並將合格訊息投遞給該消費者,實現消費者所屬商務服務器接收裝置上報至物聯網平台的訊息。
使用限制
物聯網平台執行個體及所在地區支援將資料轉寄到訊息佇列RocketMQ。支援的地區詳細資料,請參見各地區功能說明。
目前,RocketMQ執行個體所在地區必須與當前物聯網平台執行個體所在地區保持一致。存量的跨地區執行個體下資料流轉配置不受影響,仍可繼續正常流轉資料。
僅支援將資料流轉到RocketMQ 4.x或5.x版本執行個體的Topic中。如果是RocketMQ 5.x版本執行個體的Topic,該Topic的訊息類型必須為普通訊息。
目前,新版和舊版雲產品流轉功能均支援將資料流轉到訊息佇列RocketMQ。新版雲產品流轉使用樣本,請參見資料轉寄到訊息佇列RocketMQ(新版)。
雲網關產品和裝置,及MQTT型執行個體下產品和裝置,不支援使用雲產品流轉(舊版)功能。如果流轉對應產品和裝置的資料,需要使用雲產品流轉(新版)功能。具體內容,請參見雲產品流轉(新版)。
前提條件
已建立訊息佇列(RocketMQ)執行個體和用於接收資料的Topic。RocketMQ使用方法,請參見RocketMQ快速入門。
已建立資料轉寄規則和編寫處理資料的SQL,請參見設定資料流轉規則。
已在商務服務器中調用RocketMQ SDK用來消費訊息。具體操作,請參見調用SDK消費訊息。
背景資訊
當使用RocketMQ 5.0時,轉寄的資料目的配置完成後,會自動完成以下配置,實現裝置資料通過物聯網平台的規則引擎轉寄到訊息佇列RocketMQ。
物聯網平台佔用RocketMQ執行個體所在虛擬交換器的2個IP地址。
在RocketMQ執行個體所在的VPC網路下建立託管安全性群組,安全性群組名稱預設以sg-nsm-開頭。
配置資料轉寄目的
登入物聯網平台控制台。
在執行個體概覽頁簽的全部環境下,找到對應的執行個體,單擊執行個體卡片。
在左側導覽列,選擇 。
單擊規則對應的查看,進入資料流轉規則頁面。
重要若當前頁面為雲產品流轉新版頁面,需先單擊右上方返回舊版,再單擊目標規則對應的查看。
單擊轉寄資料一欄對應的添加操作。
在添加操作對話方塊中,選擇操作為發送資料到訊息佇列(RocketMQ)中。按照介面提示,設定其他資訊,單擊確認。
參數
說明
選擇操作
選擇發送資料到訊息佇列(RocketMQ)中。
地區
選擇RocketMQ所在地區。
執行個體
選擇RocketMQ執行個體。
您可以單擊建立執行個體,跳轉到訊息佇列控制台,建立RocketMQ執行個體,請參見訊息佇列文檔。
Topic
選擇用於接收物聯網平台資料的RocketMQ Topic。
您可以單擊建立Topic,跳轉到訊息佇列控制台,建立RocketMQ Topic。
Tag
(可選)設定標籤。
設定標籤後,所有通過該操作流轉到RocketMQ對應Topic裡的訊息都會攜帶該標籤。您可以在RocketMQ訊息消費端,通過標籤進行訊息過濾。
標籤長度限制為128位元組,可以輸入常量或變數。變數格式為${key},代表SQL處理後的JSON資料中key對應的value值。
授權
授權物聯網平台將資料寫入RocketMQ。
如您還未建立相關角色,單擊建立RAM角色,跳轉到RAM控制台,建立角色和授權策略,請參見建立RAM角色。
回到雲產品流轉頁,單擊規則對應的啟動按鈕啟動規則。
測試。
向規則SQL中定義的Topic發布一條訊息,然後查看裝置訊息轉寄的作業記錄。
查看裝置訊息轉寄的作業記錄
在商務服務器中已啟動並執行訂閱RocketMQ資源的終端,查看訂閱和消費訊息的日誌。
在雲訊息佇列RocketMQ版控制台,在執行個體詳情頁面,查看消費者接收到訊息的具體內容和訊息軌跡。具體操作,請參見查詢訊息軌跡。