MQTT

MQTT

MQTT(訊息佇列遙測傳輸)是ISO 標準(ISO/IEC PRF 20922)下基於發布/訂閱範式的訊息協定。它工作在 TCP/IP協定族上,是為硬體性能低下的遠程設備以及網路狀況糟糕的情況下而設計的發布/訂閱型訊息協定,為此,它需要一個訊息中間件

基本介紹

  • 中文名:訊息佇列遙測傳輸
  • 外文名:MQTT(Message Queuing Telemetry Transport)
  • 性質:即時通訊協定
  • 支持平台:所有
  • 開發商:IBM
簡介,MQTT套用,MQTT特點,

簡介

MQTT(訊息佇列遙測傳輸)是ISO 標準(ISO/IEC PRF 20922)下基於發布/訂閱範式的訊息協定。它工作在TCP/IP協定族上,是為硬體性能低下的遠程設備以及網路狀況糟糕的情況下而設計的發布/訂閱型訊息協定,為此,它需要一個訊息中間件
IBM公司的安迪·斯坦福-克拉克及Cirrus Link公司的阿蘭·尼普於1999年撰寫了該協定的第一個版本。
該協定的可用性取決於該協定的使用環境。IBM公司在2013年就向結構化資訊標準促進組織提交了 MQTT 3.1 版規範,並附有相關章程,以確保只能對規範進行少量更改。MQTT-SN是針對非 TCP/IP 網路上的嵌入式設備主要協定的變種,與此類似的還有ZigBee協定。
縱觀行業的發展歷程,“MQTT”中的“MQ” 是來自於IBM的MQ系列訊息佇列產品線。然而通常佇列本身不需要作為標準功能來支持。
可選協定包含了高級訊息佇列協定,面向文本的訊息傳遞協定,網際網路工程任務組約束套用協定,可擴展訊息與存在協定,數據分發服務,OPC UA以及web 應用程式訊息傳遞協定。

MQTT套用

IBM和St. Jude醫療中心通過MQTT開發了一套Merlin系統,該系統使用了用於家庭保健的感測器。St. Jude醫療中心設計了一個叫做Merlin@home的心臟裝置,這種無線發射器可以用來監控那些已經植入復律-除顫器和起搏器(兩者都是基本的感測器)的心臟病人。
該產品利用MQTT把病人的即時更新信息傳給醫生/醫院,然後醫院進行保存。這樣的話,病人就不用親自去醫院檢查心臟儀器了,醫生可以隨時查看病人的數據,給出建議,病人在家裡就可以自行檢查。
IBM稱該發射器包括一個大型觸控螢幕,一個嵌入式鍵盤平台,以及一個Linux作業系統。
在未來幾年,MQTT的套用會越來越廣,值得關注。
通過MQTT協定,目前已經擴展出了數十個MQTT伺服器端程式,可以通過PHP,JAVA,Python,C,C#等系統語言來向MQTT傳送相關訊息。
此外,國內很多企業都廣泛使用MQTT作為Android手機客戶端與伺服器端推送訊息的協定。其中Sohu,Cmstop手機客戶端中均有使用到MQTT作為訊息推送訊息。據Cmstop主要負責訊息推送的高級研發工程師李文凱稱,隨著移動網際網路的發展,MQTT由於開放原始碼,耗電量小等特點,將會在移動訊息推送領域會有更多的貢獻,在物聯網領域,感測器與伺服器的通信,信息的收集,MQTT都可以作為考慮的方案之一。在未來MQTT會進入到我們生活的各各方面。
如果需要下載MQTT伺服器端,可以直接去MQTT官方網站點擊software進行下載MQTT協定衍生出來的各個不同版本。

MQTT特點

MQTT協定是為大量計算能力有限,且工作在低頻寬、不可靠的網路的遠程感測器和控制設備通訊而設計的協定,它具有以下主要的幾項特性:
1、使用發布/訂閱訊息模式,提供一對多的訊息發布,解除應用程式耦合;
2、對負載內容禁止的訊息傳輸;
3、使用 TCP/IP 提供網路連線;
4、有三種訊息發布服務質量:
  • “至多一次”,訊息發布完全依賴底層 TCP/IP 網路。會發生訊息丟失或重複。這一級別可用於如下情況,環境感測器數據,丟失一次讀記錄無所謂,因為不久後還會有第二次傳送。
  • “至少一次”,確保訊息到達,但訊息重複可能會發生。
  • “只有一次”,確保訊息到達一次。這一級別可用於如下情況,在計費系統中,訊息重複或丟失會導致不正確的結果。
5、小型傳輸,開銷很小(固定長度的頭部是 2 位元組),協定交換最小化,以降低網路流量;
6、使用 Last Will 和 Testament 特性通知有關各方客戶端異常中斷的機制。

相關詞條

熱門詞條

聯絡我們