IBM MQTT概要
消息隊列遙測傳輸(Message Queuing Telemetry Transport,MQT)是IBM開發的即時通信協議,它是一種輕量級的以“發布&訂閱”方式工作的CS架構的協議。MQTT協議的主要特征是開放、簡單、輕量級和易于實現,這些特征使得它適用于受約束的應用環境,如:
·網絡受限:網絡帶寬較低且傳輸不可靠。
·終端受限:協議運行在嵌入式設備上,嵌入式終端的處理器、內存等是受限的。
通過MQTT協議,目前已經擴展出了數十種MQTT服務器端程序,可以通過PHP、Java、Python、C、C#等語言向MQTT發送消息。此外,國內很多企業都在廣泛使用MQTT作為Android手機客戶端與服務器端推送消息的協議,其中Sohu、Cmstop手機客戶端中均使用MQTT協議進行消息推送。Facebook在iOS應用中也采用MQTT協議更新通知、消息和書簽等。
由于開放源代碼、耗電量小等特點,MQTT非常適用于物聯網開發領域,如傳感器與服務器的通信、傳感器信息采集等。
MQTT協議的基本特征包括:
1、發布&訂閱的消息機制使得一對多的消息分發變得非常簡單,而且應用的設計和消息的分發相互獨立。
2、MQTT協議承載在TCP/IP協議上。
3、提供三種不同QoS的消息傳遞機制。
(1)最多一次(At Most Once):此時消息在TCP/IP網絡上以Best Effort的方式傳輸,數據包重復或丟失是存在的,重復消息將在接收端被丟棄。這種Q0S的機制可以用在不斷上報和發布數據的傳感器應用場景,針對此類場景,當接收到新傳感器采樣數據后,老舊數據的重要性就降低了。
(2)最少一次(At Least Once):此時接收方一定能收到消息,但是可能多次收到重復的消息。
(3)有且僅有一次(Exactly Once):此時保障接收方一定能收到消息,而且只收到一次。這種機制適用于賬單生成系統,重復和丟失消息都會導致計費錯誤。
4、消息的開銷很小,消息頭的固定報文頭長度采樣2字節,且協議在設計時考慮了最小化使用網絡資源。
5、為異常離線的終端提供訂閱消息緩存。