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