那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深入淺出地學(xué)習(xí)MQTT協(xié)議

lcdz66 ? 來源:雨飛工作室 ? 2023-05-25 10:17 ? 次閱讀

IBM公司的安迪·斯坦福-克拉克及Cirrus Link公司的阿蘭·尼普于1999年撰寫了MQTT協(xié)議的第一個(gè)版本。在2013年IBM公司向結(jié)構(gòu)化資訊標(biāo)準(zhǔn)促進(jìn)組織提交了MQTT 3.1版規(guī)范,并附有相關(guān)章程,以確保只能對(duì)規(guī)范進(jìn)行少量更改。MQTT可以說2017年以后就成為了所有的物聯(lián)網(wǎng)模塊的標(biāo)配。最早的物聯(lián)網(wǎng)模塊實(shí)現(xiàn)MQTT都是通過TCP方式來實(shí)現(xiàn)的。

首先我們要了解MQTT是什么,為何它會(huì)如此受到青睞。需要說明的是MQTT的前身就是TCP,他是基于TCP基礎(chǔ)做的一些協(xié)議開發(fā)。本質(zhì)上的數(shù)據(jù)傳輸是離不開TCP的。所以說TCP的穩(wěn)健可靠才衍生出來這么好用的協(xié)議。MQTT(消息隊(duì)列遙測(cè)傳輸)協(xié)議是ISO 標(biāo)準(zhǔn)(ISO/IEC PRF 20922)下基于發(fā)布/訂閱范式的消息協(xié)議。它工作在TCP/IP協(xié)議族上,是為硬件性能低下的遠(yuǎn)程設(shè)備以及網(wǎng)絡(luò)狀況糟糕的情況下而設(shè)計(jì)的發(fā)布/訂閱型消息協(xié)議。

百度百科有下面的這樣定義: MQTT是一個(gè)基于客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議。 MQTT協(xié)議是輕量、簡(jiǎn)單、開放和易于實(shí)現(xiàn)的,這些特點(diǎn)使它適用范圍非常廣泛。在很多情況下,包括受限的環(huán)境中,如:機(jī)器與機(jī)器(M2M)通信和物聯(lián)網(wǎng)(IoT)。其在,通過衛(wèi)星鏈路通信傳感器、偶爾撥號(hào)的醫(yī)療設(shè)備、智能家居、及一些小型化設(shè)備中已廣泛使用。

MQTT的設(shè)計(jì)規(guī)范和特性

由于物聯(lián)網(wǎng)環(huán)境具有一定的特殊性,所以MQTT設(shè)計(jì)都需要遵守以下規(guī)范:

①精簡(jiǎn),不添加可有可無(wú)的功能;

②發(fā)布/訂閱(Pub/Sub)模式,方便消息在傳感器之間傳遞;

③允許用戶動(dòng)態(tài)創(chuàng)建主題,零運(yùn)維成本;

④把傳輸量降到最低以提高傳輸效率;

⑤把低帶寬、高延遲、不穩(wěn)定的網(wǎng)絡(luò)等因素考慮在內(nèi);

⑥支持連續(xù)的會(huì)話控制;

⑦理解客戶端計(jì)算能力可能很低;

⑧提供服務(wù)質(zhì)量管理;

⑨假設(shè)數(shù)據(jù)不可知,不強(qiáng)求傳輸數(shù)據(jù)的類型與格式,保持靈活性。

MQTT協(xié)議工作在低帶寬、不可靠的網(wǎng)絡(luò)的遠(yuǎn)程傳感器和控制設(shè)備通訊而設(shè)計(jì)的協(xié)議,它具有以下主要的幾項(xiàng)特性:

①使用發(fā)布/訂閱消息模式,提供一對(duì)多的消息發(fā)布,解除應(yīng)用程序耦合

②對(duì)負(fù)載內(nèi)容屏蔽的消息傳輸。

③使用TCP/IP提供網(wǎng)絡(luò)連接。

④有“至多一次”“至少一次”“只有一次”三種消息發(fā)布服務(wù)質(zhì)量。

⑤小型傳輸,開銷很小(固定長(zhǎng)度的頭部是2字節(jié)),協(xié)議交換最小化,以降低網(wǎng)絡(luò)流量。

⑥使用Last Will和Testament特性通知有關(guān)各方客戶端異常中斷的機(jī)制。

MQTT協(xié)議適合場(chǎng)景:

客戶端數(shù)量眾多;

每次消息傳輸?shù)臄?shù)據(jù)量不大;

協(xié)議占用資源小,能夠方便移植到單片機(jī)等硬件上;

提供不同等級(jí)的“服務(wù)質(zhì)量Qos”;

在低帶寬、高延遲、不可靠的網(wǎng)絡(luò)和資源有限的硬件環(huán)境下,進(jìn)行相對(duì)可靠的數(shù)據(jù)傳輸;

支持一對(duì)多的消息分發(fā)。

實(shí)現(xiàn)MQTT協(xié)議需要客戶端和服務(wù)器端通訊完成,在通訊過程中,MQTT協(xié)議中有三種身份:發(fā)布者(Publish)、代理(Broker,服務(wù)器)、訂閱者(Subscribe)。其中,消息的發(fā)布者和訂閱者都是客戶端,消息代理是服務(wù)器,消息發(fā)布者可以同時(shí)是訂閱者。

wKgZomRuxbqASSqpAAEMQ7QHO2s307.png

在MQTT中,主要有三個(gè)角色:

角色說明

發(fā)布者(Publish)發(fā)送消息的一方,可以為一個(gè)應(yīng)用程序或一臺(tái)設(shè)備

代理(Broker,服務(wù)器)管理消息隊(duì)列的一方,位于消息發(fā)布者和訂閱者之間

訂閱者(Subscribe)訂閱主題的一方,主要用于接收消息

MQTT傳輸?shù)南⒎譃椋褐黝}(Topic)和負(fù)載(payload)兩部分 :Topic,可以理解為消息的類型,訂閱者訂閱(Subscribe)后,就會(huì)收到該主題的消息內(nèi)容(payload);payload,可以理解為消息的內(nèi)容,是指訂閱者具體要使用的內(nèi)容。

MQTT客戶端是指使用MQTT協(xié)議的應(yīng)用程序或者設(shè)備,它總是建立到服務(wù)器的網(wǎng)絡(luò)連接。客戶端可以是:(1)發(fā)布其他客戶端可能會(huì)訂閱的信息;(2)訂閱其它客戶端發(fā)布的消息;(3)退訂或刪除應(yīng)用程序的消息;(4)斷開與服務(wù)器連接。

MQTT服務(wù)器稱為"消息代理"(Broker),可以是一個(gè)應(yīng)用程序或一臺(tái)設(shè)備。它是位于消息發(fā)布者和訂閱者之間,它可以:(1)接收來自客戶的網(wǎng)絡(luò)連接;(2)接收客戶發(fā)布的應(yīng)用信息;(3)處理來自客戶端的訂閱和退訂請(qǐng)求;(4)向訂閱的客戶轉(zhuǎn)發(fā)應(yīng)用程序消息。

wKgZomRuxbqAItRBAAKCPxnwlTY231.png

其實(shí)對(duì)用戶需要明白一點(diǎn)的就是,它就是客戶端和服務(wù)器之間的數(shù)據(jù)交互。MQTT的應(yīng)用存在于我們身邊的方方面面。上面圖告訴我們, MQTT是需要有一個(gè)服務(wù)器的,左邊有設(shè)備進(jìn)行數(shù)據(jù)發(fā)布,右邊是有數(shù)據(jù)接收。 簡(jiǎn)單來講,我們掃碼付款吃飯,首先我們先掃二維碼信息,手機(jī)會(huì)將我們的二維碼信息和付款信息金額發(fā)布到MQTT的服務(wù)器。MQTT服務(wù)器收到你的付款金額后,會(huì)推送給你收錢方的商家,所以你會(huì)聽到付款消息的聲音,在商家的支付寶里面也會(huì)多出你轉(zhuǎn)過來的費(fèi)用了。

wKgZomRuxbqAG-ZFAAO0WJ3Klxs997.png

上圖演示的是發(fā)布數(shù)據(jù)消息,然后在手機(jī)和電腦端接收消息。可以看到,發(fā)布數(shù)據(jù)里面不但有數(shù)據(jù)內(nèi)容還有個(gè)TOPIC。所以為何剛才上面提及到付款的時(shí)候,不但有付款金額還有二維碼信息,也是一個(gè)道理。

TOPIC主題如何理解,比如我們收發(fā)快遞的時(shí)候,快遞盒子上面的收件人信息機(jī)會(huì)可以理解為主題,因?yàn)橹挥惺占诵畔⒑藢?shí)清楚,快遞才不會(huì)拿錯(cuò)。 所以上圖演示的溫度信息就是因?yàn)槭謾C(jī)端先訂閱了“temp”這個(gè)參數(shù)。 所以當(dāng)發(fā)布者發(fā)布消息的時(shí)候,有這個(gè)主題的時(shí)候,服務(wù)器就會(huì)推送這樣的數(shù)據(jù)包括主題給訂閱者進(jìn)行接收。所以在MQTT里面最為重要的信息就是主題。相對(duì)TCP而言,它只是收發(fā)數(shù)據(jù)信息,沒有主題概念。所以對(duì)于TCP而言,是很難做客戶端與客戶端之間的通訊測(cè)試的,因?yàn)閿?shù)據(jù)沒法分清誰(shuí)是誰(shuí)。

大家只要理解MQTT是TCP的上層封裝,只是比TCP發(fā)數(shù)據(jù)的時(shí)候多一個(gè)TOPIC即可。 我們使用MQTT.fx的軟件給用戶測(cè)試下MQTT的使用概念。

wKgaomRuxbqAPQo2AABzVy9BOkc206.png

打開MQTT.fx軟件,用戶需要先配置鏈接的服務(wù)器,他既可以用作發(fā)布者也可以用作訂閱者。

wKgaomRuxbqAZhZYAACr5_57lwQ927.png

上圖是MQTT的服務(wù)器配置,用戶如果沒有服務(wù)器,使用我們所提供的免費(fèi)服務(wù)器進(jìn)行測(cè)試也是可以的。

wKgZomRuxbqAP5f8AABjg95h2rE561.png

配置完成后,點(diǎn)擊下connect按鈕,進(jìn)行連接。如果服務(wù)器存在,那么就會(huì)顯示綠色燈,如果不存在是連接不上的。

wKgaomRuxbqACU9hAABIycFcKjE402.png

左邊有一個(gè)按鈕是發(fā)布消息的英文名稱,首先在第一個(gè)框中輸入發(fā)布主題,下面的大白空頁(yè)輸入發(fā)布數(shù)據(jù)。

wKgaomRuxbqATqlKAABeky15q6s120.png

然后發(fā)布的右邊的按鈕是訂閱的按鈕英文名稱,同樣第一個(gè)框需要用戶輸入訂閱主題。這點(diǎn)之前明確過,如果要訂閱到消息,必須和發(fā)布數(shù)據(jù)的主題名稱一樣才可以。

我們?cè)诎l(fā)布頁(yè)面發(fā)送數(shù)據(jù),看下訂閱端是否可以收到數(shù)據(jù)。

wKgZomRuxbqAMrwpAABht6Kl7ts060.png

可以看到訂閱端訂閱到了發(fā)布端發(fā)來的消息內(nèi)容了,這樣一個(gè)模擬的MQTT測(cè)試流程就結(jié)束了。

與OneNET服務(wù)器連接初體驗(yàn)

MQTT協(xié)議采用發(fā)布/訂閱(Publish/Subscribe)模式, MQTT是應(yīng)用層的協(xié)議,其底層為TCP協(xié)議,TCP是傳輸層協(xié)議 ,云端(服務(wù)器端)通過主題(Topic)的方式管理各個(gè)物聯(lián)網(wǎng)設(shè)備的訂閱,實(shí)現(xiàn)將設(shè)備與設(shè)備之間消息進(jìn)行轉(zhuǎn)發(fā)。一般物聯(lián)網(wǎng)平臺(tái)都是支持MQTT協(xié)議的,比如我們要接入的OneNET——中國(guó)移動(dòng)物聯(lián)網(wǎng)開放平臺(tái),也是支持MQTT協(xié)議的,具體支持的協(xié)議包括以下幾種:

wKgZomRuxbqAI2MQAABJAbuPitg734.png

OneNET平臺(tái)相當(dāng)于MQTT中的Broker(服務(wù)器) ,要想實(shí)現(xiàn)與OneNET平臺(tái)連接,我們需要一個(gè)客戶端,而MQTT.fx是目前最常用的MQTT客戶端,我們 使用的MQTT.fx的版本為1.7.1 。

MQTT.fx軟件下載后,默認(rèn)安裝即可,安裝完畢的軟件界面如下:

wKgaomRuxbqAe8nyAADHwdJJDB0241.png

MQTT.fx與OneNET服務(wù)器連接:

創(chuàng)建產(chǎn)品和設(shè)備

注冊(cè)并登錄OneNET平臺(tái)的控制臺(tái)

創(chuàng)建產(chǎn)品

創(chuàng)建設(shè)備

我們按照上面網(wǎng)文教程創(chuàng)建一個(gè)產(chǎn)品和一個(gè)測(cè)試設(shè)備:

wKgaomRuxbuAfQ_1AAL1iecSI9I197.png

服務(wù)器地址

OneNET物聯(lián)網(wǎng)平臺(tái)的地址和端口在下面鏈接獲取:

wKgZomRuxbuATiF5AAA28LtWdkw848.png

Broker Address:mqtts.heclouds.com

Broker Port:1883

進(jìn)入與MQTT服務(wù)器連接配置界面之后,將地址和端口填寫到下圖所示位置:

wKgaomRuxbuACt24AACZrsVbVCg504.png

其他部分配置信息說明:

Profile Name:可以隨便命名,我命名為:OneNET

Profile Type:保持默認(rèn)設(shè)置。

Broker Address:MQTT服務(wù)器的地址,mqtt.heclouds.com

Broker Port:服務(wù)器端口,1883

Client ID:客戶端ID,此處填寫“設(shè)備名稱”:XiaoHaLED

wKgZomRuxbuAPOowAAB3CoDQD04130.png

General標(biāo)簽下的內(nèi)容,MQTT Version后面的復(fù)選框取消,其他默認(rèn)即可。

填寫用戶憑證信息

在User Credentials標(biāo)簽頁(yè)下面,需要我們填寫User Name和Password 。

wKgZomRuxbuAfD-DAABWBfHiH3I921.png

其中,User Name就是產(chǎn)品管理頁(yè)面的產(chǎn)品ID ,對(duì)應(yīng)我創(chuàng)建的測(cè)試設(shè)備就是:EyCs17z321。

Password應(yīng)該填寫鑒權(quán)信息,此處即為一個(gè)token。

生成token

token的介紹

token生成工具

OneNET提供了token生成的上位機(jī)軟件,可以通過下面鏈接下載并使用:

wKgZomRuxbuAGkHMAAAS4qLRMco203.png

其中:res:products/{pid}/devices/{device_name}

上面是res的值由產(chǎn)品ID和設(shè)備名稱組成,通過上面我們知道,我們創(chuàng)建的測(cè)試設(shè)備的產(chǎn)品ID值為:EyCs17z321,設(shè)備名稱的值為:XiaoHaLED 。

所以,最終res 的值為:products/EyCs17z321/devices/XiaoHaLED

et:expiration time,表示過期時(shí)間,此時(shí)間要求大于當(dāng)前時(shí)間,為了避免太快過期,可以適當(dāng)加大此參數(shù)數(shù)值,此處為unix時(shí)間。簡(jiǎn)單來說,unix時(shí)間戳就是從1970年1月1日(UTC/GMT的午夜)開始所經(jīng)過的秒數(shù)。

除了使用程序獲得當(dāng)前unix時(shí)間以外,還可以使用網(wǎng)上現(xiàn)成的“unix時(shí)間戳 << >> 北京時(shí)間”轉(zhuǎn)換的在線工具完成,比如下面的網(wǎng)址即可:

wKgaomRuxbuACayIAAAW2lYpy-M617.png

2024-05-16 1440 <==> et:1715839360

key:這個(gè)參數(shù)就是“ access_key ”這個(gè)參數(shù):

cTNX52nLNysj9yvfuT+RQy2TPWkX4SszoQ+7xUsluRE=,

所在位置如下圖所示:

wKgaomRuxbuAFmyQAABxdXz1G9g195.png

其他參數(shù)默認(rèn)即可。

將上面得到的res、et、key代入token計(jì)算工具軟件中,點(diǎn)擊Generate按鈕:

wKgZomRuxbuALoWkAAA_SnvEzBY712.png

生成的字符串即為User Credential標(biāo)簽頁(yè)下面, Password文本框內(nèi)需要填寫的內(nèi)容,即填寫如下內(nèi)容:

version=2018-10-31&res=products%2FEyCs17z321%2Fdevices%2FXiaoHaLED&et=1715839360&method=md5&sign=T1DUaZKADMMroYpR4G5aEg%3D%3D

其他參數(shù)默認(rèn)即可,然后點(diǎn)擊OK退出配置頁(yè)面。

連接OneNET服務(wù)器

下圖下拉列表中,選擇剛剛創(chuàng)建的Profile Name:OneNET,點(diǎn)擊“Connect”按鈕,成功連接至OneNET平臺(tái)服務(wù)器,效果如下圖所示:

wKgaomRuxbuAa5KKAAE2bZLgT9g777.png

連接之后,我們查看OneNET控制臺(tái),在 設(shè)備接入與管理-->設(shè)備管理 頁(yè)面,可以看到XiaoHaLED設(shè)備已經(jīng)處于在線狀態(tài)。

wKgZomRuxbuAQlYPAAD1Fzk1wXY388.png

好了,我們已經(jīng)順利連接上了OneNET服務(wù)器。用這個(gè)MQTT.fx 軟件也可以連接其他物聯(lián)網(wǎng)平臺(tái),比如阿里云物聯(lián)網(wǎng)平臺(tái)。

7個(gè)發(fā)展趨勢(shì)

隨著MQTT在物聯(lián)網(wǎng)中的使用規(guī)模不斷增長(zhǎng),場(chǎng)景更加多樣化,我們可以預(yù)見在 MQTT技術(shù)領(lǐng)域中將會(huì)出現(xiàn)以下7個(gè)發(fā)展趨勢(shì):

1、MQTT over QUIC

QUIC(Quick UDP Internet Connections)是由Google開發(fā)的一種新的傳輸協(xié)議,運(yùn)行于UDP之上,旨在減少建立新連接所帶來的延遲,提高數(shù)據(jù)傳輸速率,并解決 TCP 的一些限制。下一代互聯(lián)網(wǎng)協(xié)議HTTP/3使用了QUIC作為底層傳輸協(xié)議,為網(wǎng)絡(luò)應(yīng)用帶來了比 HTTP/2 更低的時(shí)延和更好的加載體驗(yàn)。

MQTT over QUIC是自2017年MQTT 5.0規(guī)范發(fā)布以來MQTT協(xié)議中最具創(chuàng)新性的進(jìn)展。憑借多路復(fù)用、更快的連接建立和遷移等優(yōu)勢(shì)特性,其具有成為下一代 MQTT協(xié)議標(biāo)準(zhǔn)的潛力。

MQTT 5.0定義了三種傳輸類型: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 連接恢復(fù)的特性來加速重連。QUIC協(xié)議棧可以針對(duì)各種用例進(jìn)行定制,例如在不穩(wěn)定網(wǎng)絡(luò)環(huán)境下,或是客戶端到服務(wù)器更低延遲通信的場(chǎng)景。它能夠在諸如移動(dòng)網(wǎng)絡(luò)下的車聯(lián)網(wǎng)(IoV)以及要求極低時(shí)延的工業(yè)物聯(lián)網(wǎng)(IIoT)場(chǎng)景下發(fā)揮重要作用,并有效提升其使用體驗(yàn)。

wKgaomRuxbuAeUdDAADBCeYNfrk337.png

2、MQTT Serverless

云計(jì)算中Serverless模式的興起標(biāo)志著應(yīng)用的設(shè)計(jì)、開發(fā)、部署和運(yùn)行方式發(fā)生了突破性的范式轉(zhuǎn)變。這種模式下開發(fā)者將能夠?qū)W⒂趹?yīng)用的業(yè)務(wù)邏輯,無(wú)需管理基礎(chǔ)設(shè)施,從而提高敏捷性、可擴(kuò)展性和成本效益。

Serverless模式的MQTT消息服務(wù)器將是2023年的一種前沿架構(gòu)創(chuàng)新。傳統(tǒng)的物聯(lián)網(wǎng)應(yīng)用需要數(shù)分鐘甚至數(shù)小時(shí)才能在云上或在企業(yè)私有環(huán)境中部署MQTT消息服務(wù),相比之下,Serverless MQTT只需點(diǎn)擊幾下就能快速完成MQTT服務(wù)的部署。除了極快的部署速度,Serverless MQTT更大的價(jià)值在于其無(wú)可比擬的靈活性:根據(jù)用戶需求對(duì)資源進(jìn)行無(wú)縫擴(kuò)展,以及與這種彈性架構(gòu)相匹配的按量計(jì)費(fèi)定價(jià)模式。Serverless MQTT有望推動(dòng)MQTT更廣泛地應(yīng)用,降低運(yùn)營(yíng)成本,激發(fā)不同行業(yè)的創(chuàng)新協(xié)作。我們甚至可能看到每個(gè)物聯(lián)網(wǎng)和工業(yè)物聯(lián)網(wǎng)開發(fā)者都能擁有一個(gè)免費(fèi)的 Serverless MQTT消息服務(wù)器。

3、MQTT多租戶架構(gòu)

多租戶架構(gòu)是實(shí)現(xiàn)Serverless MQTT服務(wù)的一個(gè)重要基礎(chǔ)。來自不同用戶或租戶的物聯(lián)網(wǎng)設(shè)備可以連接到同一個(gè)大規(guī)模的MQTT集群,同時(shí)保持其數(shù)據(jù)和業(yè)務(wù)邏輯與其他租戶隔離。在SaaS應(yīng)用中多租戶架構(gòu)很常見,即一個(gè)應(yīng)用為多個(gè)客戶或租戶服務(wù)。其通常有兩種以下不同的實(shí)現(xiàn)方式:租戶隔離:向每個(gè)租戶提供一個(gè)單獨(dú)的應(yīng)用實(shí)例,在服務(wù)器或虛擬機(jī)上運(yùn)行。數(shù)據(jù)庫(kù)隔離:多個(gè)租戶共享一個(gè)應(yīng)用實(shí)例,但每個(gè)租戶有自己的數(shù)據(jù)庫(kù)模式,以確保數(shù)據(jù)隔離。

在MQTT Broker的多租戶架構(gòu)中,每個(gè)設(shè)備和租戶都有一個(gè)單獨(dú)的、隔離的命名空間,包括一個(gè)獨(dú)特的主題前綴和訪問控制列表(ACL),用來定義用戶可以發(fā)布或訂閱哪些主題。多租戶MQTT 消息服務(wù)器能夠減少管理開銷,并靈活支持復(fù)雜場(chǎng)景或大規(guī)模物聯(lián)網(wǎng)應(yīng)用場(chǎng)景。例如,一個(gè)大型組織中的部門和應(yīng)用可以作為不同的租戶使用同一個(gè) MQTT集群。

4、MQTT Sparkplug 3.0

MQTT Sparkplug是由Eclipse基金會(huì)設(shè)計(jì)的開放標(biāo)準(zhǔn)規(guī)范,其最新版本為MQTT Sparkplug 3.0,它定義了工業(yè)設(shè)備的統(tǒng)一數(shù)據(jù)接入規(guī)范,能夠通過MQTT協(xié)議連接各類工業(yè)傳感器、動(dòng)作執(zhí)行器、可編程邏輯控制器(PLC)和網(wǎng)關(guān)。

MQTT Sparkplug 3.0于2022年11月發(fā)布,具有以下關(guān)鍵的新功能和改進(jìn):

MQTT 5.0支持:增加了對(duì)MQTT 5.0的支持,包括共享訂閱、消息過期和流量控制等新功能。

優(yōu)化的數(shù)據(jù)傳輸:對(duì)數(shù)據(jù)傳輸進(jìn)行了優(yōu)化,使用更緊湊的數(shù)據(jù)編碼和壓縮算法

擴(kuò)展的數(shù)據(jù)模型:引入了一個(gè)擴(kuò)展的數(shù)據(jù)模型,它允許更詳細(xì)的設(shè)備信息通信,還支持配置數(shù)據(jù)和設(shè)備元數(shù)據(jù)等其他信息的傳輸。

更高的安全性:包括對(duì)安全性的若干改進(jìn),如支持雙向TLS認(rèn)證、優(yōu)化的訪問控制機(jī)制等。

簡(jiǎn)化的設(shè)備管理:包括自動(dòng)設(shè)備注冊(cè)和發(fā)現(xiàn),簡(jiǎn)化設(shè)備配置,以及改進(jìn)診斷等。

MQTT Sparkplug旨在簡(jiǎn)化不同工業(yè)設(shè)備間的連接和通信,實(shí)現(xiàn)高效的工業(yè)數(shù)據(jù)采集、處理和分析。隨著新版本的發(fā)布,MQTT Sparkplug 3.0將會(huì)在工業(yè)物聯(lián)網(wǎng)領(lǐng)域得到更廣泛的應(yīng)用。

5、MQTT統(tǒng)一命名空間

統(tǒng)一命名空間(Unified Namespace)是一個(gè)建立在面向工業(yè)物聯(lián)網(wǎng)和工業(yè)4.0的 MQTT Broker上的解決方案架構(gòu)。它為MQTT主題提供了一個(gè)統(tǒng)一的命名空間,并為消息和結(jié)構(gòu)化數(shù)據(jù)提供了一個(gè)集中的存儲(chǔ)庫(kù)。

統(tǒng)一命名空間使用中央MQTT Broker ,以星形拓?fù)浣Y(jié)構(gòu)連接工業(yè)設(shè)備、傳感器和應(yīng)用程序,如SCADA、MES 和 ERP。統(tǒng)一命名空間以事件驅(qū)動(dòng)的架構(gòu)極大簡(jiǎn)化了工業(yè)物聯(lián)網(wǎng)應(yīng)用的開發(fā)。在傳統(tǒng)的工業(yè)物聯(lián)網(wǎng)系統(tǒng)中,OT和IT系統(tǒng)通常是分開的,其數(shù)據(jù)、協(xié)議和工具均獨(dú)立運(yùn)行。通過采用統(tǒng)一命名空間,可以讓OT和IT系統(tǒng)更有效地交換數(shù)據(jù),最終實(shí)現(xiàn)物聯(lián)網(wǎng)時(shí)代OT和IT的統(tǒng)一。如今,通過EMQ提供的開源 MQTT 消息服務(wù)器EMQX或NanoMQ,結(jié)合工業(yè)協(xié)議網(wǎng)關(guān)軟件Neuron,用戶將可以構(gòu)建一個(gè)由 IT 界最先進(jìn)技術(shù)支持的統(tǒng)一命名空間架構(gòu)。

wKgZomRuxbuAQ9VpAADTnCM2tVg590.png

6、MQTT跨域集群

MQTT跨域集群(MQTT Geo-Distribution)是一個(gè)創(chuàng)新架構(gòu),允許部署在不同地區(qū)或云上的MQTT Broker作為一個(gè)單集群一起工作。通過跨域集群,MQTT消息可以在不同地區(qū)的MQTT Broker之間自動(dòng)同步和傳輸。

有兩種方法可以實(shí)現(xiàn)MQTT跨域集群:?jiǎn)渭海嗟貐^(qū):?jiǎn)蝹€(gè)MQTT集群,每個(gè)節(jié)點(diǎn)在不同地區(qū)運(yùn)行。多集群,多云:分布在不同云中的多個(gè)MQTT集群連接在一起。我們可以將這兩種方法結(jié)合,在跨區(qū)域部署的MQTT Broker之間創(chuàng)建一個(gè)可靠的物聯(lián)網(wǎng)數(shù)據(jù)基礎(chǔ)設(shè)施。通過MQTT跨域集群,企業(yè)可以建立一個(gè)跨多云的全球MQTT接入網(wǎng)絡(luò)。不管所處的物理位置在哪里,設(shè)備和應(yīng)用都能從最近的節(jié)點(diǎn)接入實(shí)現(xiàn)相互通信。

7、MQTT Streams

MQTT Streams是MQTT協(xié)議備受期待的一項(xiàng)擴(kuò)展能力,能夠在MQTT Broker內(nèi)實(shí)時(shí)處理海量、高頻的數(shù)據(jù)流。這在發(fā)布訂閱模式消息傳輸?shù)幕A(chǔ)上進(jìn)一步增強(qiáng)了傳統(tǒng) MQTT Broker的能力。通過MQTT Streams,客戶端可以像Apache Kafka一樣將 MQTT消息以流的形式進(jìn)行生產(chǎn)和消費(fèi),從而實(shí)現(xiàn)歷史消息回放。這對(duì)事件驅(qū)動(dòng)的處理尤為重要,可以確保最終的數(shù)據(jù)一致性、可審計(jì)和合規(guī)性。流處理對(duì)于從物聯(lián)網(wǎng)設(shè)備產(chǎn)生的大量數(shù)據(jù)中實(shí)時(shí)挖掘商業(yè)價(jià)值至關(guān)重要。以前,這一過程通過一個(gè)過時(shí)且復(fù)雜的大數(shù)據(jù)堆棧實(shí)現(xiàn),需要MQTT Broker與Kafka、Hadoop、Flink或Spark進(jìn)行集成。而通過內(nèi)置的流處理,MQTT Streams簡(jiǎn)化了物聯(lián)網(wǎng)數(shù)據(jù)處理架構(gòu),提高了數(shù)據(jù)處理效率和響應(yīng)時(shí)間,并為物聯(lián)網(wǎng)提供了一個(gè)統(tǒng)一的消息傳遞和流處理平臺(tái)。通過消息去重、消息重放和消息過期等功能,MQTT Streams實(shí)現(xiàn)了高吞吐量、低時(shí)延和容錯(cuò),使其成為基于MQTT的物聯(lián)網(wǎng)應(yīng)用中實(shí)時(shí)數(shù)據(jù)流處理的強(qiáng)大工具。

總的來說,MQTT的這7個(gè)技術(shù)趨勢(shì)反映了新興技術(shù)的進(jìn)步以及它們?cè)谕苿?dòng)物聯(lián)網(wǎng)發(fā)展進(jìn)程中的重要作用。作為一個(gè)發(fā)展了二十多年的標(biāo)準(zhǔn)消息傳輸協(xié)議,MQTT的重要性正在持續(xù)增長(zhǎng)。隨著物聯(lián)網(wǎng)在各行業(yè)被越來越廣泛地應(yīng)用,MQTT協(xié)議也在不斷發(fā)展以應(yīng)對(duì)新的挑戰(zhàn),滿足更低延遲的連接、更便捷的MQTT服務(wù)部署、復(fù)雜場(chǎng)景或大規(guī)模物聯(lián)網(wǎng)應(yīng)用下靈活管理以及工業(yè)設(shè)備接入的需求。作為龐大物聯(lián)網(wǎng)的神經(jīng)系統(tǒng),在2023年及更遠(yuǎn)的未來,MQTT必將在工業(yè)物聯(lián)網(wǎng)和車聯(lián)網(wǎng)等關(guān)鍵領(lǐng)域中發(fā)揮重要作用。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2913

    文章

    44921

    瀏覽量

    376961
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9299

    瀏覽量

    86055
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1378

    瀏覽量

    79294
  • 客戶端
    +關(guān)注

    關(guān)注

    1

    文章

    290

    瀏覽量

    16761
  • MQTT
    +關(guān)注

    關(guān)注

    5

    文章

    653

    瀏覽量

    22689

原文標(biāo)題:深入淺出地學(xué)習(xí)MQTT協(xié)議

文章出處:【微信號(hào):雨飛工作室,微信公眾號(hào):雨飛工作室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    深入淺出AVR

    深入淺出AVR,一本書。
    發(fā)表于 07-15 12:02

    深入淺出玩轉(zhuǎn)FPGA

    深入淺出玩轉(zhuǎn)FPGA
    發(fā)表于 07-21 09:21

    深入淺出ARM7

    深入淺出ARM7
    發(fā)表于 08-18 10:12

    深入淺出Android

    深入淺出Android
    發(fā)表于 08-20 10:14

    ARM7 深入淺出學(xué)習(xí)

    深入淺出ARM7 LPC213x_214 學(xué)習(xí)
    發(fā)表于 12-04 17:28

    深入淺出Android

    深入淺出Android
    發(fā)表于 04-26 10:48

    深入淺出安防視頻監(jiān)控系統(tǒng)

    深入淺出安防視頻監(jiān)控系統(tǒng)深入淺出安防視頻監(jiān)控系統(tǒng)
    發(fā)表于 05-22 19:28

    深入淺出AVR

    深入淺出AVR
    發(fā)表于 08-23 10:10

    深入淺出排序學(xué)習(xí)使用指南

    深入淺出排序學(xué)習(xí):寫給程序員的算法系統(tǒng)開發(fā)實(shí)踐
    發(fā)表于 09-16 11:38

    深入淺出Cortex-M0學(xué)習(xí)資料

    深入淺出Cortex-M0學(xué)習(xí)資料
    發(fā)表于 06-18 10:50 ?1次下載
    <b class='flag-5'>深入淺出</b>Cortex-M0<b class='flag-5'>學(xué)習(xí)</b>資料

    深入淺出數(shù)據(jù)分析

    深入淺出數(shù)據(jù)分析,有需要的朋友下來看看。
    發(fā)表于 01-15 14:22 ?0次下載

    STM32深入淺出之新手篇

    STM32深入淺出之新手篇,很好的單片機(jī)學(xué)習(xí)資料。
    發(fā)表于 03-21 17:43 ?128次下載

    深入淺出談多層面板布線技巧

    深入淺出談多層面板布線技巧
    發(fā)表于 12-13 22:20 ?0次下載

    深入淺出學(xué)習(xí)250個(gè)通信原理資源下載

    深入淺出學(xué)習(xí)250個(gè)通信原理資源下載
    發(fā)表于 04-12 09:16 ?28次下載

    深入淺出學(xué)習(xí)低功耗藍(lán)牙協(xié)議

    深入淺出學(xué)習(xí)低功耗藍(lán)牙協(xié)議
    發(fā)表于 06-23 10:35 ?57次下載
    娱乐城注册送38| 百家乐平注法攻略| 92棋牌游戏| 百家乐哪家信誉好| 百家乐筹码| 澳门百家乐娱乐平台| 棋牌百家乐官网程序破解| 太阳城紫玉园| 百家乐官网网哪一家做的最好呀 | 百家乐波音平台导航网| 百家乐官网怎么玩能赢钱| 百家乐套利| 百家乐官网1元投注| 大发888娱乐场是真是假| 尊龙百家乐官网赌场娱乐网规则| 明升网| 百家乐有作弊的吗| 赤峰市| 威尼斯人娱乐城打造| 百家乐官网单注打| 大发888 dafa888 大发官网| 百家乐官网游戏| 真钱百家乐官网赌博| 百家乐蓝盾在线现| 百家乐官网游戏百家乐官网| 黄金城百家乐官网苹果版| 临颍县| 大发888 信用卡| 可信百家乐官网的玩法技巧和规则 | 百家乐凯时娱乐平台| 蓝盾百家乐官网平台租用| 德州扑克| 百家乐连跳规律| 赌百家乐官网的方法| 大发888注册官方网站| 澳门百家乐登陆网址| 最大的百家乐官网网站| 大西洋城娱乐| 百家乐正负计算| 百家乐视频双扣| 网上百家乐官网洗码技巧|