一个 MQTT 代理可以处理多少个客户端?

Posted

技术标签:

【中文标题】一个 MQTT 代理可以处理多少个客户端?【英文标题】:How many clients can a MQTT broker handle? 【发布时间】:2018-01-08 10:18:28 【问题描述】:

MQTT 是一种发布/订阅协议。每当发布者发布到某个主题时,所有订阅该主题的订阅者都将通过 MQTT 代理获取消息。我想知道 MQTT 代理可以处理的最大客户端数。有上限吗?

【问题讨论】:

不,没有上限。一些 MQTT 代理支持超过 10.000.000 个连接的 MQTT 代理集群,可以在此基准中看到:hivemq.com/benchmark-10-million 【参考方案1】:

解决这个问题的唯一方法是根据您的具体工作量进行测试。

这将完全取决于以下几点:

    您运行代理的机器的大小。 您发送的消息的大小。 消息的速率。 客户端(订阅者和发布者)的数量。 您需要满足的性能特征。 您使用的是哪个代理。

可能还有更多因素。

【讨论】:

客户端和代理之间的网络特征(网关、响应时间)、QOS、连接/断开速度、SSL 与无 SSL 等【参考方案2】:

MQTT 代理可以服务多少客户端取决于您使用的 MQTT 代理软件。大多数 MQTT 代理可能仅受可用内存量的限制(每个套接字使用一块内存),因此成为哪个代理软件以最有效的方式利用内存(和其他资源)的问题。当然,有些经纪人可能有其他限制。

在实践中,您还必须查看您可以对连接的客户端执行哪些操作 - 某些代理可能会根据连接的客户端数量等表现不同(性能方面)。

【讨论】:

以上是关于一个 MQTT 代理可以处理多少个客户端?的主要内容,如果未能解决你的问题,请参考以下文章

MQTT协议

MQTT协议

压力测试 mqtt 代理(HiveMQ CE 代理)

客户端与 mqtt 代理断开连接后释放端口

AWS IoT 设备网关是 MQTT 代理吗?

Apache Activemq 和 Mqtt