MQTT 中的简单公共订阅模型
其主要功能包括:
-
使用发布/订阅消息模式,它提供一对多的消息分发和应用程序的分离。
-
与有效负载内容无关的消息传输。消息传递的三种服务质量
-
小的传输开销和协议交换最小化以减少网络传输
https://i.stack.imgur.com/Ma7HZ.jpg
通常有两种类型的消息服务。
-
队列(一对一连接)
-
主题(一对一/一对多)
MQTT 不支持可靠的队列,但 MQTT 支持主题,默认情况下主题不可靠但我们可以使用 MQTT 功能和方法使其可靠。
主题和队列之间的区别
队列:
- 点对点模型
- 只有一个消费者收到消息
- 消息必须按发送的顺序传递
- 队列仅保证每条消息只处理一次。
- 队列知道消费者或 JMS 客户端是谁。目的地是已知的。
- JMS 客户端(使用者)不必始终处于活动状态或连接到队列以接收或读取消息。
- 成功处理的每条消息都由消费者确认。
话题:
-
发布/订阅模型
-
多个客户端订阅该消息
-
无法保证必须在发送的订单中传递消息
-
无法保证每条消息只处理一次。因为这可以从模型中感知到
-
主题,有多个订阅者,主题可能不知道所有订阅者。目的地未知
-
除非订阅是持久订阅,否则订阅者/客户端需要在生成者生成消息时处于活动状态。
-
否,消费者/订阅者不会确认成功处理的每条消息。
但我们可以使用 MQTT 减少主题的缺点。主题可以可靠并控制 MQTT 功能中的重复项