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