首頁>
2
回覆列表
  • 1 # 用戶3554514717426

    MQTT(Message Queuing Telemetry Transport)是一種輕量級的消息傳輸協議,主要用於物聯網設備之間的通信。MQTT協議的優點和缺點如下:

    優點:

    輕量級:MQTT協議採用二進制編碼,消息頭只有兩個字節,非常輕量級,適合在帶寬較小的網絡中使用。

    靈活性高:MQTT協議支持多種消息傳輸模式,包括點對點、發布/訂閱等模式,可以根據不同的應用場景選擇合適的模式。

    可靠性高:MQTT協議支持QoS(Quality of Service)服務質量等級,可以保證消息的可靠傳輸。

    易於實現:MQTT協議的實現非常簡單,可以在各種平台上快速實現。

    支持安全性:MQTT協議支持TLS/SSL加密,可以保證消息的安全傳輸。

    缺點:

    不適合大規模數據傳輸:MQTT協議適合傳輸小量的數據,不適合大規模數據傳輸。

    不支持事務:MQTT協議不支持事務,無法保證消息的原子性。

    不支持消息隊列:MQTT協議不支持消息隊列,無法保證消息的順序性。

  • 2 # 用戶9118586954936

    一、MQTT的優點

    (1)低協議開銷。MQTT的獨特功能是每個消息頭都可以縮短為2個字節。對於HTTP,為每個新請求消息重新建立HTTP連接會產生可觀的開銷。 MQ和MQTT使用的持久連接可以大大減少這種開銷。

    (2)包容不穩定的網絡。MQTT和MQ可以從諸如斷開連接之類的故障中恢復,無需進一步的代碼要求。但是,HTTP本身無法實現此目標,並且客戶端必須重試編碼,這會增加身份問題。

    (3)低功耗。MQTT專為低功耗目標而設計。 HTTP設計未考慮此因素,這會增加功耗。

    (4)數百萬個連接的客戶端。在連接數百萬個客戶端的情況下,在HTTP堆棧中維護數百萬個併發連接需要大量工作才能提供支持。儘管這種支持是可行的,但大多數商業產品都經過優化以處理此訂單上的持久連接。 IBM提供了IBM MessageSight,這是一種單機架安裝服務器,已經過測試,可以通過MQTT處理多達一百萬個併發設備。相反,MQ不是為許多同時進行的客戶設計的。

    (5)推送通知。您需要能夠及時向客戶發送通知。為此,您應該使用常規的輪詢或推送方法。就電池,系統負載和帶寬而言,推送是最佳解決方案。

    (6)客戶端平台的差異。HTTP和MQTT客戶端都在許多平台上實現。 MQTT的簡單性可幫助您以最少的努力在其他客戶端上實施MQTT。

    (7)防火牆容錯能力。某些公司防火牆將出站連接限制到某些預定義的端口,這些端口通常僅限於HTTP(端口80),HTTPS(端口443)等,HTTP在這種情況下顯然可以工作。 MQTT封裝在WebSockets連接中,並顯示為HTTP升級請求,因此可以在這種情況下運行。

    二、MQTT的缺點

    實際上,MQTT被廣泛使用,可以在幾乎任何大型硬件和互聯網公司中找到,例如Facebook,BP,阿里巴巴,百度。

    由於MQTT本身的技術優勢,越來越多的公司選擇MQTT作為物聯網產品通信的標準協議。結果,工程師逐漸意識到MQTT協議的功能需要大規模商業化進行改進。例如:

    (1)沒有齊備的SDK。如果沒有完整的SDK,則需要用於不同異構設備的軟件SDK軟件包才能與MQTT服務器(例如MCU,Linux,Android,iOS,WEB)進行通信,以實現互連和互操作性。

    (2)不支持文件和AV。在某些應用場景中,需要傳輸的信息可能不限於需要通過AV與文件通信的指令,例如語音和視頻信號。

    (3)不支持與第三方HTTP集成。 MQTT協議優於常規HTTP協議,但是基於傳統HTTP協議的WEB服務器仍在主流市場中占主導地位。這些服務器應與MQTT協議互連,以降低升級成本。

    (4)不支持負載分配。負載分配服務器對於高併發性和防止惡意攻擊也是必不可少的。

    (5)不支持用戶管理界面。當用戶分析設備行為數據時,這一點尤其重要。在工業4.0和大數據時代,這是不可避免的需求。

    (6)不支持離線消息。設備脫機後,不支持脫機消息來補償從MQTT服務器到設備的控制信息丟失。

    (7)不支持點對點通信,並且使用標準的MQTT協議。從理論上講,點對點通信可以通過相互訂閱來實現,但是邏輯相對複雜並且涉及設備安全性。當設備B和設備C相同時-在主題的情況下,設備A無法知道消息是來自設備B還是來自設備C,並且消息很可能是被設備D竊聽的。

    (8)不支持群組通信或群組管理,而是實現群組成員的管理。小組成員可以交換消息,如果一個設備由多個人控制或多個設備由一個人控制,則此功能特別有用。