Zaiming(Stone)Shi:EMQX 歐洲研發(fā)中心負責人,擁有多年大規模分布式 MQTT 消息系統開(kāi)發(fā)經(jīng)驗,致力于與 EMQ 斯德哥爾摩研發(fā)團隊一起將 EMQX 打造成為全球最優(yōu)秀的 MQTT broker。
MQTT 是物聯(lián)網(wǎng)消息傳輸標準協(xié)議,其采用極其輕量級的發(fā)布訂閱消息模型,以可擴展、可靠且高效的方式連接物聯(lián)網(wǎng)設備。
自 1999 年 IBM 發(fā)布 MQTT 以來(lái)已經(jīng)過(guò)去了二十多年,而自 2012 年 EMQ 在 GitHub 上發(fā)布開(kāi)源 MQTT 消息服務(wù)器 EMQX,也已經(jīng)過(guò)去了十年。如今,我們來(lái)到了各類(lèi)新興技術(shù)飛速進(jìn)步的 2023 年,隨著(zhù) MQTT 在物聯(lián)網(wǎng)中的使用規模不斷增長(cháng),場(chǎng)景更加多樣化,我們可以預見(jiàn)在 MQTT 技術(shù)領(lǐng)域中將會(huì )出現以下 7 個(gè)發(fā)展趨勢。
MQTT over QUIC
QUIC(Quick UDP Internet Connections)是由 Google 開(kāi)發(fā)的一種新的傳輸協(xié)議,運行于 UDP 之上,旨在減少建立新連接所帶來(lái)的延遲,提高數據傳輸速率,并解決 TCP 的一些限制。
下一代互聯(lián)網(wǎng)協(xié)議 HTTP/3 使用了 QUIC 作為底層傳輸協(xié)議,為網(wǎng)絡(luò )應用帶來(lái)了比 HTTP/2 更低的時(shí)延和更好的加載體驗。
MQTT over QUIC是自 2017 年 MQTT 5.0 規范發(fā)布以來(lái) MQTT 協(xié)議中最具創(chuàng )新性的進(jìn)展。憑借多路復用、更快的連接建立和遷移等優(yōu)勢特性,其具有成為下一代 MQTT 協(xié)議標準的潛力。
MQTT 5.0 定義了三種傳輸類(lèi)型:TCP、TLS 和 WebSocket。在物聯(lián)網(wǎng)安全最佳實(shí)踐中,MQTT over TLS/SSL 廣泛用于生產(chǎn)環(huán)境以保護客戶(hù)端和 Broker 之間的通信。然而它速度慢、延遲高,需要 3.5 個(gè) RTT,即 TCP 3 次握手以及 TLS 4 次握手才能建立新的MQTT 連接。
與 MQTT over TLS/SSL 相比,MQTT over QUIC 更快且延遲更低,在初次建立連接時(shí)僅需 1 RTT,并可以利用 0 RTT 連接恢復的特性來(lái)加速重連。QUIC 協(xié)議棧可以針對各種用例進(jìn)行定制,例如在不穩定網(wǎng)絡(luò )環(huán)境下,或是客戶(hù)端到服務(wù)器更低延遲通信的場(chǎng)景。它能夠在諸如移動(dòng)網(wǎng)絡(luò )下的車(chē)聯(lián)網(wǎng)(IoV)以及要求極低時(shí)延的工業(yè)物聯(lián)網(wǎng)(IIoT)場(chǎng)景下發(fā)揮重要作用,并有效提升其使用體驗。
開(kāi)源 MQTT 消息服務(wù)器 EMQX 在其最新的 5.0 版本中引入了 MQTT over QUIC 支持,是全球首個(gè)支持 MQTT over QUIC 的 MQTT 消息服務(wù)器。目前 EMQ 正以 OASIS MQTT 技術(shù)委員會(huì )成員身份積極推進(jìn) MQTT over QUIC 的標準化落地,可以預見(jiàn)在不久的將來(lái),MQTT 也將和 HTTP/3 一樣使用 QUIC 作為其主要傳輸層。
MQTT Serverless
云計算中 Serverless 模式的興起標志著(zhù)應用的設計、開(kāi)發(fā)、部署和運行方式發(fā)生了突破性的范式轉變。這種模式下開(kāi)發(fā)者將能夠專(zhuān)注于應用的業(yè)務(wù)邏輯,無(wú)需管理基礎設施,從而提高敏捷性、可擴展性和成本效益。
Serverless 模式的 MQTT 消息服務(wù)器將是 2023 年的一種前沿架構創(chuàng )新。傳統的物聯(lián)網(wǎng)應用需要數分鐘甚至數小時(shí)才能在云上或在企業(yè)私有環(huán)境中部署 MQTT 消息服務(wù),相比之下,Serverless MQTT 只需點(diǎn)擊幾下就能快速完成 MQTT 服務(wù)的部署。
除了極快的部署速度,Serverless MQTT 更大的價(jià)值在于其無(wú)可比擬的靈活性:根據用戶(hù)需求對資源進(jìn)行無(wú)縫擴展,以及與這種彈性架構相匹配的按量計費定價(jià)模式。Serverless MQTT 有望推動(dòng) MQTT 更廣泛的應用,降低運營(yíng)成本,激發(fā)不同行業(yè)的創(chuàng )新協(xié)作。我們甚至可能看到每個(gè)物聯(lián)網(wǎng)和工業(yè)物聯(lián)網(wǎng)開(kāi)發(fā)者都能擁有一個(gè)免費的 Serverless MQTT 消息服務(wù)器。
2023 年 3 月,EMQX Cloud 推出了全球首個(gè) Serverless MQTT 服務(wù),為用戶(hù)提供了 5 秒極速部署和更靈活的計費方式,幫助用戶(hù)以更低的成本高效開(kāi)發(fā)物聯(lián)網(wǎng)應用。
MQTT 多租戶(hù)架構
多租戶(hù)架構是實(shí)現 Serverless MQTT 服務(wù)的一個(gè)重要基礎。來(lái)自不同用戶(hù)或租戶(hù)的物聯(lián)網(wǎng)設備可以連接到同一個(gè)大規模的 MQTT 集群,同時(shí)保持其數據和業(yè)務(wù)邏輯與其他租戶(hù)隔離。
在 SaaS 應用中多租戶(hù)架構很常見(jiàn),即一個(gè)應用為多個(gè)客戶(hù)或租戶(hù)服務(wù)。其通常有兩種以下不同的實(shí)現方式:
租戶(hù)隔離: 向每個(gè)租戶(hù)提供一個(gè)單獨的應用實(shí)例,在服務(wù)器或虛擬機上運行。
數據庫隔離: 多個(gè)租戶(hù)共享一個(gè)應用實(shí)例,但每個(gè)租戶(hù)有自己的數據庫模式,以確保數據隔離。
在 MQTT Broker 的多租戶(hù)架構中,每個(gè)設備和租戶(hù)都有一個(gè)單獨的、隔離的命名空間,包括一個(gè)獨特的主題前綴和訪(fǎng)問(wèn)控制列表(ACL),用來(lái)定義用戶(hù)可以發(fā)布或訂閱哪些主題。
多租戶(hù) MQTT 消息服務(wù)器能夠減少管理開(kāi)銷(xiāo),并靈活支持復雜場(chǎng)景或大規模物聯(lián)網(wǎng)應用場(chǎng)景。例如,一個(gè)大型組織中的部門(mén)和應用可以作為不同的租戶(hù)使用同一個(gè) MQTT 集群。
MQTT Sparkplug 3.0
MQTT Sparkplug 是由 Eclipse 基金會(huì )設計的開(kāi)放標準規范,其最新版本為 MQTT Sparkplug 3.0,它定義了工業(yè)設備的統一數據接入規范,能夠通過(guò) MQTT 協(xié)議連接各類(lèi)工業(yè)傳感器、動(dòng)作執行器、可編程邏輯控制器(PLC)和網(wǎng)關(guān)。
MQTT Sparkplug 3.0 于 2022 年 11 月發(fā)布,具有以下關(guān)鍵的新功能和改進(jìn):
MQTT 5.0 支持:增加了對 MQTT 5.0 的支持,包括共享訂閱、消息過(guò)期和流量控制等新功能。
優(yōu)化的數據傳輸:對數據傳輸進(jìn)行了優(yōu)化,使用更緊湊的數據編碼和壓縮算法。
擴展的數據模型:引入了一個(gè)擴展的數據模型,它允許更詳細的設備信息通信,還支持配置數據和設備元數據等其他信息的傳輸。
更高的安全性:包括對安全性的若干改進(jìn),如支持雙向 TLS 認證、優(yōu)化的訪(fǎng)問(wèn)控制機制等。
簡(jiǎn)化的設備管理:包括自動(dòng)設備注冊和發(fā)現,簡(jiǎn)化設備配置,以及改進(jìn)診斷等。
MQTT Sparkplug 旨在簡(jiǎn)化不同工業(yè)設備間的連接和通信,實(shí)現高效的工業(yè)數據采集、處理和分析。隨著(zhù)新版本的發(fā)布,MQTT Sparkplug 3.0 將會(huì )在工業(yè)物聯(lián)網(wǎng)領(lǐng)域得到更廣泛的應用。
MQTT 統一命名空間
統一命名空間(Unified Namespace)是一個(gè)建立在面向工業(yè)物聯(lián)網(wǎng)和工業(yè) 4.0 的MQTT Broker上的解決方案架構。它為 MQTT 主題提供了一個(gè)統一的命名空間,并為消息和結構化數據提供了一個(gè)集中的存儲庫。
統一命名空間使用中央 MQTT Broker ,以星形拓撲結構連接工業(yè)設備、傳感器和應用程序,如 SCADA、MES 和 ERP。統一命名空間以事件驅動(dòng)的架構極大簡(jiǎn)化了工業(yè)物聯(lián)網(wǎng)應用的開(kāi)發(fā)。
在傳統的工業(yè)物聯(lián)網(wǎng)系統中,OT 和 IT 系統通常是分開(kāi)的,其數據、協(xié)議和工具均獨立運行。通過(guò)采用統一命名空間,可以讓 OT 和 IT 系統更有效地交換數據,最終實(shí)現物聯(lián)網(wǎng)時(shí)代 OT 和 IT 的統一。
如今,通過(guò) EMQ 提供的開(kāi)源 MQTT 消息服務(wù)器 EMQX或NanoMQ,結合工業(yè)協(xié)議網(wǎng)關(guān)軟件 Neuron,用戶(hù)將可以構建一個(gè)由 IT 界最先進(jìn)技術(shù)支持的統一命名空間架構。
MQTT 跨域集群
MQTT 跨域集群(MQTT Geo-Distribution)是一個(gè)創(chuàng )新架構,允許部署在不同地區或云上的 MQTT Broker 作為一個(gè)單集群一起工作。通過(guò)跨域集群,MQTT 消息可以在不同地區的 MQTT Broker 之間自動(dòng)同步和傳輸。
有兩種方法可以實(shí)現 MQTT 跨域集群:
單集群,多地區: 單個(gè) MQTT 集群,每個(gè)節點(diǎn)在不同地區運行。
多集群,多云: 分布在不同云中的多個(gè) MQTT 集群連接在一起。
我們可以將這兩種方法結合,在跨區域部署的 MQTT Broker 之間創(chuàng )建一個(gè)可靠的物聯(lián)網(wǎng)數據基礎設施。通過(guò) MQTT 跨域集群,企業(yè)可以建立一個(gè)跨多云的全球 MQTT 接入網(wǎng)絡(luò )。不管所處的物理位置在哪里,設備和應用都能從最近的節點(diǎn)接入實(shí)現相互通信。
MQTT Streams
MQTT Streams 是 MQTT 協(xié)議備受期待的一項擴展能力,能夠在 MQTT Broker 內實(shí)時(shí)處理海量、高頻的數據流。這在發(fā)布訂閱模式消息傳輸的基礎上進(jìn)一步增強了傳統 MQTT Broker 的能力。通過(guò) MQTT Streams,客戶(hù)端可以像 Apache Kafka 一樣將 MQTT 消息以流的形式進(jìn)行生產(chǎn)和消費,從而實(shí)現歷史消息回放。這對事件驅動(dòng)的處理尤為重要,可以確保最終的數據一致性、可審計和合規性。
流處理對于從物聯(lián)網(wǎng)設備產(chǎn)生的大量數據中實(shí)時(shí)挖掘商業(yè)價(jià)值至關(guān)重要。以前,這一過(guò)程通過(guò)一個(gè)過(guò)時(shí)且復雜的大數據堆棧實(shí)現,需要 MQTT Broker 與 Kafka、Hadoop、Flink 或 Spark 進(jìn)行集成。
而通過(guò)內置的流處理,MQTT Streams 簡(jiǎn)化了物聯(lián)網(wǎng)數據處理架構,提高了數據處理效率和響應時(shí)間,并為物聯(lián)網(wǎng)提供了一個(gè)統一的消息傳遞和流處理平臺。通過(guò)消息去重、消息重放和消息過(guò)期等功能,MQTT Streams 實(shí)現了高吞吐量、低時(shí)延和容錯,使其成為基于 MQTT 的物聯(lián)網(wǎng)應用中實(shí)時(shí)數據流處理的強大工具。
結語(yǔ)
總的來(lái)說(shuō),MQTT 的這 7 個(gè)技術(shù)趨勢反映了新興技術(shù)的進(jìn)步以及它們在推動(dòng)物聯(lián)網(wǎng)發(fā)展進(jìn)程中的重要作用。
作為一個(gè)發(fā)展了二十多年的標準消息傳輸協(xié)議,MQTT 的重要性正在持續增長(cháng)。隨著(zhù)物聯(lián)網(wǎng)在各行業(yè)被越來(lái)越廣泛地應用,MQTT 協(xié)議也在不斷發(fā)展以應對新的挑戰,滿(mǎn)足更低延遲的連接、更便捷的 MQTT 服務(wù)部署、復雜場(chǎng)景或大規模物聯(lián)網(wǎng)應用下靈活管理以及工業(yè)設備接入的需求。作為龐大物聯(lián)網(wǎng)的神經(jīng)系統,在 2023 年及更遠的未來(lái),MQTT 必將在工業(yè)物聯(lián)網(wǎng)和車(chē)聯(lián)網(wǎng)等關(guān)鍵領(lǐng)域中發(fā)揮重要作用。