MQTT 中的簡單公共訂閱模型

其主要功能包括:

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

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

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

https://i.stack.imgur.com/Ma7HZ.jpg

通常有兩種型別的訊息服務。

  • 佇列(一對一連線)

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

MQTT 不支援可靠的佇列,但 MQTT 支援主題,預設情況下主題不可靠但我們可以使用 MQTT 功能和方法使其可靠。

主題和佇列之間的區別

佇列:

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

話題:

  • 釋出/訂閱模型

  • 多個客戶端訂閱該訊息

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

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

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

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

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

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