如果當前產品下設備與物聯網平臺之間的上下行消息量大于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版控制臺,在實例詳情頁面,查看消費者接收到消息的具體內容和消息軌跡。具體操作,請參見查詢消息軌跡。