在MQTT中,订阅者的数量是否会影响接收时间?

问题描述 投票:0回答:1

我想知道特定主题的订阅者数量是否会导致每个订阅者接收消息的延迟?如果是的话,是跟经纪人的实现有关,还是跟MQTT的本质有关?

我在各种经纪商的文档中找不到任何东西,或者我找不到合适的术语来搜索。

scenario 1 :
topic1
publisher --> broker --> 1 subscriber

scenario 2 :
topic1
publisher --> broker --> 2 or more subscribers

场景1的用户收到消息的速度会比场景2快吗,还是每个用户同时收到消息?

amazon-web-services mqtt aws-iot messagebroker
1个回答
2
投票

这主要取决于经纪人的实现方式,但其他因素也会有影响。

对于大多数broker来说,传递特定消息的处理很可能是单线程的,并遵循以下步骤。

  • 经纪人从发布客户端接收发布数据包
  • 在收到消息的线程上,它开始搜索连接客户端的订阅主题模式列表。
  • 在找到匹配后,它会向该客户端发送发布数据包,然后转到下一个客户端。

如果设计好了订阅主题树结构,那么搜索时间应该不会因为订阅客户端的数量而改变,只是匹配模式(重叠通配符)的数量。但是发送到匹配客户端的时间会是线性的。

另一个因素将是消息的大小和网络到每个客户端的速度。

你也许可以并行化其中的一部分,要么在一个单一的代理中,但这仍然会在网络接口上产生瓶颈,要么在一个分布式的代理中(但这会增加将原始消息推送到其他节点的开销)。

© www.soinside.com 2019 - 2024. All rights reserved.