開發與維運

升級到MQTT 5的五個原因

12.17.19-Five-Reasons-to-Upgrade-to-MQTT-5.png

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。

原文鏈接

Leave a Reply

Your email address will not be published. Required fields are marked *