當需要對設備數據進行復雜或精細化處理,且單個產品下所有設備或指定設備的消息量小于1,000 QPS時,可以使用云產品流轉功能將物聯網平臺數據轉發到輕量消息隊列(原 MNS) SMQ(Simple Message Queue (formerly MNS))中,服務端再從消息服務主題中訂閱消息,實現設備端與服務端之間高性能的消息閉環傳輸。本文以物模型數據上報Topic為例,介紹流轉消息數據的完整流程。
工作原理
云產品流轉可將同一產品所有設備或指定設備的指定Topic消息,實時轉發到MNS隊列已訂閱的主題中。
在上圖中:
數據源:支持的Topic類型消息,請參見數據格式(非云網關產品和設備)、自定義Topic(MQTT云網關)、消息轉發Topic(GB/T 32960云網關)、消息轉發Topic(JT/T 808云網關)、消息轉發Topic(SL 651云網關)。
數據目的:創建的MNS主題,用于接收設備數據,該主題的消息都會推送到訂閱該主題的MNS隊列中。
解析器腳本:配置通過數據流轉函數
writeMns(destinationId, payload)
將Topic數據轉發到MNS主題中。函數詳細說明,請參見函數列表。
使用限制
物聯網平臺實例及所在地域支持將數據轉發到消息服務(MNS)。支持的地域詳細信息,請參見各地域功能說明。
新版和舊版云產品流轉功能均支持將數據流轉到消息服務(MNS)。舊版云產品流轉使用示例,請參見數據轉發到消息服務(舊版)。
物聯網平臺實例下設備消息轉發的更多使用限制,請參見使用限制。
前提條件
已添加待轉發的設備Topic數據源。例如:創建數據源DataSource,添加指定設備的物模型數據上報Topic。具體步驟,請參見添加待流轉的數據源。
已創建消息服務主題,并在該主題下創建推送類型為HTTP或隊列的訂閱。消息服務使用方法,請參見輕量消息隊列SMQ(原 MNS)文檔。
重要企業版實例中,消息服務主題所在地域必須與該企業版實例所在地域一致。
已在您的業務服務器中使用MNS云端SDK監聽已訂閱MNS主題的MNS隊列,才能實現消息服務MNS云端應用接收物聯網平臺設備消息。
輕量消息隊列(原 MNS) SMQ(Simple Message Queue (formerly MNS))云端SDK調用方法,請參見SDK下載和使用中對應SDK的主題使用手冊。
背景信息
設備端與服務端通過消息服務轉發數據的流程,請參見數據轉發到消息服務(MNS)。
物聯網平臺提供服務端訂閱和云產品流轉服務,均可將設備消息轉發到消息服務MNS客戶端進行消費。對比服務端訂閱功能,云產品流轉功能支持先指定設備Topic和加工處理設備數據再進行消息轉發。您可以對比流轉方案及應用場景,選擇您業務需要的合適方案。具體內容,請參見數據流轉方案對比。服務端訂閱方式的配置方法,請參見使用MNS服務端訂閱。
創建數據目的
登錄物聯網平臺控制臺。
在實例概覽頁簽的全部環境下,找到對應的實例,單擊實例卡片。
在左側導航欄,選擇 。
在云產品流轉頁面,單擊右上角體驗新版,進入新版功能頁面。
說明如果您已執行過此操作,再次進入云產品流轉頁面,會直接進入新版功能頁面。
- 單擊數據目的頁簽,然后單擊創建數據目的。
在創建數據目的對話框,輸入數據目的名稱,例如DataPurpose,按照以下參數說明,完成配置,然后單擊確定。
參數
描述
選擇操作
選擇發送數據到消息服務(MNS)中。
地域
選擇消息服務所在地域。
主題
選擇接收數據的SMQ主題。
SMQ會將接收到的消息發送給該主題下的HTTP和隊列類型的訂閱。目前,物聯網平臺推送至SMQ主題的消息,僅可以通過HTTP或隊列兩種方式訂閱。
您可以單擊創建主題,跳轉到輕量消息隊列(原 MNS)控制臺,創建SMQ主題以及訂閱。請參見輕量消息隊列(原 MNS) SMQ(Simple Message Queue (formerly MNS))文檔。
角色
授權物聯網平臺將數據寫入輕量消息隊列(原 MNS)。
如您還未創建相關角色,單擊創建RAM角色,跳轉到RAM控制臺,創建角色和授權策略,請參見創建RAM角色。
配置并啟動解析器
- 創建解析器,例如DataParser。具體操作,請參見步驟一:創建解析器。
- 在解析器詳情頁面,關聯數據源。
- 在配置向導的數據源下,單擊關聯數據源。
- 在彈出的對話框中,單擊數據源下拉列表,選擇已創建的數據源DataSource,單擊確定。
- 在解析器詳情頁面,關聯數據目的。
- 單擊配置向導的數據目的,然后單擊數據目的列表右上方的關聯數據目的。
- 在彈出的對話框中,單擊數據目的下拉列表,選擇已創建的數據目的DataPurpose,單擊確定。
- 在數據目的列表,查看并保存數據目的ID,例如為1000。后續解析腳本中,需使用此處的數據目的ID。
- 在解析器詳情頁面,單擊解析器。
在腳本輸入框,輸入解析腳本。
解析腳本類似JavaScript語言,編輯腳本的語法參考JavaScript語法,詳細的編輯方法,請參見腳本語法。
函數參數說明,請參見函數列表。
//通過payload函數,獲取設備上報的消息內容,并按照JSON格式轉換。 var data = payload("json"); //直接流轉物模型上報數據。 writeMns(1000, data);
單擊調試,根據頁面提示,選擇產品和設備,輸入Topic和Payload數據,驗證腳本可執行。
參數示例如下:
運行結果如下,表示腳本執行成功。
- 單擊發布。
- 回到云產品流轉頁面的解析器頁簽,單擊解析器DataParser對應的啟動按鈕,啟動解析器。
后續操作
您可在物聯網平臺控制臺對應實例下云端運行日志。
頁面的云端運行日志頁簽,查看設備到云消息及云產品流轉的運行日志。具體操作,請參見您可登錄輕量消息隊列(原 MNS)控制臺,查看MNS主題推送到隊列的消息。具體操作,請參見接收消息。
相關文檔
設備接入物聯網平臺上報數據的操作指導,請參見設備接入引導。
您可在實例詳情頁面,查看消息轉發TPS可用資源,確保設備消息能正常轉發到輕量消息隊列(原 MNS)進行消費。具體操作,請參見查看實例信息和運行數據。如果可用資源不足,可進行升配。具體內容,請參見升配。
查看輕量消息隊列(原 MNS)主題監控項,了解接收消息的數量。具體操作,請參見查看主題監控項。
您可以使用日志管理功能將消息主題的消息操作日志推送到日志服務Log Service。當消息的消費確認出現異常時,您可以通過MessageId查詢消息軌跡等信息,從而進行異常診斷。具體內容,請參見推送日志到Log Service和查看日志Log Service。