MQTT MQTT中的簡單公共/訂閱模型


其主要功能包括:

  • 使用發布/訂閱消息模式,它提供一對多的消息分發和應用程序的分離。

  • 與有效負載內容無關的消息傳輸。消息傳遞的三種服務質量

  • 小的傳輸開銷和協議交換最小化以減少網絡傳輸

在此處輸入圖像描述

通常有兩種類型的消息服務。

  • 隊列(一對一連接)

  • 主題(一對一/一對多)

MQTT不支持可靠的隊列,但MQTT支持主題,默認情況下主題不可靠但我們可以使用MQTT功能和方法使其可靠。

主題和隊列之間的區別

隊列:

  • 點對點模型
  • 只有一個消費者收到消息
  • 消息必須按發送的順序傳遞
  • 隊列僅保證每條消息只處理一次。
  • 隊列知道消費者或JMS客戶端是誰。目的地是已知的。
  • JMS客戶端(使用者)不必始終處於活動狀態或連接到隊列以接收或讀取消息。
  • 成功處理的每條消息都由消費者確認。

話題:

  • 發布/訂閱模型

  • 多個客戶端訂閱該消息

  • 無法保證必須在發送的訂單中傳遞消息

  • 無法保證每條消息只處理一次。因為這可以從模型中感知到

  • 主題,有多個訂閱者,主題可能不知道所有訂閱者。目的地未知

  • 除非訂閱是持久訂閱,否則訂閱者/客戶端需要在生成者生成消息時處於活動狀態。

  • 否,消費者/訂閱者不會確認成功處理的每條消息。

但我們可以使用MQTT減少主題的缺點。主題可以可靠並控制MQTT功能中的重複項