我想知道特定主题的订阅者数量是否会导致每个订阅者接收消息的延迟?如果是的话,是跟经纪人的实现有关,还是跟MQTT的本质有关?
我在各种经纪商的文档中找不到任何东西,或者我找不到合适的术语来搜索。
scenario 1 :
topic1
publisher --> broker --> 1 subscriber
scenario 2 :
topic1
publisher --> broker --> 2 or more subscribers
场景1的用户收到消息的速度会比场景2快吗,还是每个用户同时收到消息?
这主要取决于经纪人的实现方式,但其他因素也会有影响。
对于大多数broker来说,传递特定消息的处理很可能是单线程的,并遵循以下步骤。
如果设计好了订阅主题树结构,那么搜索时间应该不会因为订阅客户端的数量而改变,只是匹配模式(重叠通配符)的数量。但是发送到匹配客户端的时间会是线性的。
另一个因素将是消息的大小和网络到每个客户端的速度。
你也许可以并行化其中的一部分,要么在一个单一的代理中,但这仍然会在网络接口上产生瓶颈,要么在一个分布式的代理中(但这会增加将原始消息推送到其他节点的开销)。