MQTT MQTT中的简单公共/订阅模型


其主要功能包括:

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

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

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

在此处输入图像描述

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

  • 队列(一对一连接)

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

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

主题和队列之间的区别

队列:

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

话题:

  • 发布/订阅模型

  • 多个客户端订阅该消息

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

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

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

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

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

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