MQTT 中的简单公共订阅模型

其主要功能包括:

  • 使用发布/订阅消息模式,它提供一对多的消息分发和应用程序的分离。

  • 与有效负载内容无关的消息传输。消息传递的三种服务质量

  • 小的传输开销和协议交换最小化以减少网络传输

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

通常有两种类型的消息服务。

  • 队列(一对一连接)

  • 主题(一对一/一对多)

MQTT 不支持可靠的队列,但 MQTT 支持主题,默认情况下主题不可靠但我们可以使用 MQTT 功能和方法使其可靠。

主题和队列之间的区别

队列:

  • 点对点模型
  • 只有一个消费者收到消息
  • 消息必须按发送的顺序传递
  • 队列仅保证每条消息只处理一次。
  • 队列知道消费者或 JMS 客户端是谁。目的地是已知的。
  • JMS 客户端(使用者)不必始终处于活动状态或连接到队列以接收或读取消息。
  • 成功处理的每条消息都由消费者确认。

话题:

  • 发布/订阅模型

  • 多个客户端订阅该消息

  • 无法保证必须在发送的订单中传递消息

  • 无法保证每条消息只处理一次。因为这可以从模型中感知到

  • 主题,有多个订阅者,主题可能不知道所有订阅者。目的地未知

  • 除非订阅是持久订阅,否则订阅者/客户端需要在生成者生成消息时处于活动状态。

  • 否,消费者/订阅者不会确认成功处理的每条消息。

但我们可以使用 MQTT 减少主题的缺点。主题可以可靠并控制 MQTT 功能中的重复项