MQTT已成為將物聯(lián)網(wǎng)(IoT)設(shè)備連接到云的流行協(xié)議。MQTT最初開發(fā)于1999年,用于監(jiān)視衛(wèi)星網(wǎng)絡(luò)上的石油和管道。當時,需要一種協(xié)議,它對于電源有限的遠程設(shè)備有效,帶寬使用效率高并且能夠在不可靠的網(wǎng)絡(luò)連接上運行的協(xié)議。開發(fā)MQTT時,還沒有創(chuàng)造出IoT這個術(shù)語,也沒有云計算,也沒有出現(xiàn)各種IoT使用案例。
由于這些原因,需要更新MQTT協(xié)議,以解決在大型云平臺上托管MQTT和處理其他物聯(lián)網(wǎng)用例所需的某些缺少的功能。在2015/2016年,OASIS內(nèi)部開始研究新版本的規(guī)范MQTT5。在2019年3月,MQTT 5被批準為正式的OASIS標準。
MQTT中有許多新特性,但是有5個關(guān)鍵特性可以改進MQTT系統(tǒng)的錯誤處理、可伸縮性和靈活性。
會話和消息到期
MQTT 5現(xiàn)在允許每個會話和消息指定一個時間限制。如果消息在指定的時間段內(nèi)未送達,則會將其刪除。如果消息需要在一段時間內(nèi)到達,這對于安全關(guān)鍵用例來說非常重要。
共享訂閱
共享訂閱允許多個MQTT客戶端實例共享來自MQTT代理的相同主題的訂閱。如果已設(shè)置MQTT客戶端以將MQTT數(shù)據(jù)流傳輸?shù)胶蠖似髽I(yè)系統(tǒng)(例如數(shù)據(jù)庫)中,則此功能非常有用。可以在不同的群集節(jié)點之間部署共享相同訂閱的不同MQTT客戶端,以幫助實現(xiàn)可伸縮性和高可用性。
否定確認(Negative Acknowledgements)
現(xiàn)在,支持MQTT 5的MQTT代理可以發(fā)送否定確認消息,以拒絕某些類型的消息,例如最大QoS,最大消息大小以及代理中不受支持的功能。拒絕超過最大消息大小的消息對于識別可能已變?yōu)閻阂獾腗QTT客戶端很有用。
有效載荷格式指示器(Payload Format Indicators)
MQTT一直是與負載無關(guān)的,但是MQTT 5現(xiàn)在允許添加負載格式指示符、二進制值或文本。這將使處理MQTT消息更加容易。
用戶屬性
除了有效載荷格式指示符之外,MQTT 5消息現(xiàn)在還可以包括用戶屬性,這些屬性將鍵值屬性添加到消息頭中。這些屬性允許將特定于應(yīng)用程序的信息添加到每個消息頭。
小結(jié)
MQTT社區(qū)正在逐漸包括對各種MQTT實現(xiàn)的MQTT 5支持,包括Eclipse Paho,Mosquitto和HiveMQ。如果您正在考慮在下一個物聯(lián)網(wǎng)應(yīng)用程序中使用MQTT,請強烈考慮使用MQTT 5。
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2903文章
44284瀏覽量
371338 -
MQTT
+關(guān)注
關(guān)注
5文章
649瀏覽量
22435
發(fā)布評論請先 登錄
相關(guān)推薦
評論