MQTT和HTTP的区别
來源:http://blog.sina.com.cn/s/blog_68f485d10102yowx.html
HTTP是最流行和最廣泛使用的協議。但在過去幾年中,MQTT迅速獲得了牽引力。當我們談論物聯網開發時,開發人員必須在它們之間做出選擇。
設計和消息傳遞
MQTT以數據為中心,而HTTP是以文檔為中心的。HTTP是用于客戶端 – 服務器計算的請求 – 響應協議,并不總是針對移動設備進行優化。MQTT在這些術語中的主要優點是輕量級(MQTT將數據作為字節數組傳輸)和發布/訂閱模型,這使其非常適合資源受限的設備并有助于節省電池。
此外,發布/訂閱模型為客戶提供了彼此獨立的存在,增強了整個系統的可靠性。當一個客戶端出現故障時,整個系統可以繼續正常工作。
速度和交付
根據3G網絡的測量結果,MQTT的吞吐量比HTTP快93倍。
此外,與HTTP相比,MQTT協議確保了高傳輸保證。有3個級別的服務質量:
– 最多一次:保證盡力交付。
– 至少一次:保證消息至少傳送一次。但是消息也可以不止一次傳遞。
– 恰好一次:保證每個消息只被對方接收一次
MQTT還為用戶提供Last will&Testament和Retained消息的選項。第一個意味著在客戶端意外斷開連接的情況下,所有訂閱的客戶端都將從代理獲得消息。保留消息意味著新訂閱的客戶端將立即獲得狀態更新。
HTTP協議沒有這些功能。
復雜性和消息大小
?MQTT具有相當短的規范。只有CONNECT,PUBLISH,SUBSCRIBE,UNSUBSCRIBE和DISCONNECT類型對開發人員很重要。而HTTP規范要長得多。
MQTT具有非常短的消息頭,并且最小的包消息大小為2個字節。通過HTTP協議使用文本消息格式允許它組成冗長的標題和消息。它有助于消除麻煩,因為它可以被人類閱讀,但同時它對于資源受限的設備是不必要的。
結論
MQTT協議易于使用。對于未來的解決方案,響應時間,吞吐量,更低的電池和帶寬使用率是第一位的,這一點至關重要。在間歇性連接的情況下,它也是完美的。
HTTP是值得和可擴展的。但是當它被稱為IoT開發時,MQTT更適合。
?
總結分析:
| HTTP | 應用廣泛,開發成本低 | 1,服務端無法主動推送數據給client; 2,采用key-value格式,占用存儲和計算資源高; |
| MQTT | 小型傳輸,資源開銷小 | 發布訂閱模式,提供1對多消息發布,解除應用程序耦合 |
mqtt是為大量計算能力有限且工作在低帶寬、不可靠網絡的遠程傳感器和控制設備通訊而設計的一種協議。
HTTP是適合使用在性能好一些的終端上,相對以上一些比較重,對設備要求相對高一些。不適合M2M的場景。
mqtt是以數據為中心,數據量一般比較小;
http是以文本為中心,數據量一般比較大。
總結
以上是生活随笔為你收集整理的MQTT和HTTP的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《疯狂的麦克斯:弗瑞奥萨》首曝片场照 荒
- 下一篇: SharePoint2013 备份还原