无法接收所有已发布的消息[AWS IOT]

时间:2017-06-12 11:43:06

标签: mqtt publish-subscribe aws-iot

我正在尝试使用5个进程每秒发布1000条消息,每条进程有200条消息,每条消息都有一个独特的主题。并尝试使用5个流程进行监听,每个流程都在监听正在发布消息的一个主题上。

问题是我无法收到所有的千条消息,每次我按照这个过程收到的消息数量都不一定。

据我所知,AWS IOT应该允许每秒3000个入站消息。

1 个答案:

答案 0 :(得分:1)

尝试在QOS-1或QOS-2级别发布数据。

什么是服务质量?

服务质量(QoS)级别是关于传递消息的保证的消息的发送者和接收者之间的协议。 MQTT中有3个QoS级别:

最多一次(0)

至少一次(1)

恰好一次(2)。

在谈论QoS时,传递消息总是有两个不同的部分:将客户端发布到代理,将代理发布到订阅客户端。我们需要分开看待它们,因为存在细微差别。将客户端发布到代理的QoS级别取决于客户端为特定消息设置的QoS级别。当代理将消息传送到订阅客户端时,它使用先前由客户端进行的订阅的QoS。这意味着,如果使用较低的QoS订阅,则QoS保证可以降级为特定接收客户端。

为什么服务质量很重要?

QoS是MQTT的一个主要特性,它使不可靠网络中的通信变得更加容易,因为协议处理重传并保证消息的传递,无论底层传输的不可靠性如何。此外,它还使客户能够根据其网络可靠性和应用逻辑选择QoS级别。