activemq 5.10.0 支持的最大 mqtt 连接数是多少

Posted

技术标签:

【中文标题】activemq 5.10.0 支持的最大 mqtt 连接数是多少【英文标题】:what are the maximum mqtt connections supported by activemq 5.10.0 【发布时间】:2015-03-09 05:02:52 【问题描述】:

我想使用 activemq 支持大约 100K 的 mqtt 连接。 activemq 服务器拒绝超过 30K 的连接。如何调整 activemq 以支持更多连接数。 我已经尝试了以下

transportConnector name="mqtt" allowLinkStealing="true" uri="mqtt+nio://0.0.0.0:1883?maximumConnections=100000&wireFormat.maxFrameSize=104857600&transport.defaultKeepAlive=60000&transport.closeAsync=false&useQueueForAccept=false

activemq.xml 但没用。 我对打开文件 fds 的数量进行了一些 unix 内核调整,使其达到 100000。 有人解决了这个问题吗?

【问题讨论】:

【参考方案1】:

JoramMQ (http://jorammq.com) 基于 Joram (http://joram.ow2.org) 多协议消息代理,它支持超过 500K 的并发 MQTT 连接。

【讨论】:

【参考方案2】:

如果您要处理超过 10 万个连接,我建议您使用专用的 MQTT 代理而不是多协议消息代理。您可以在MQTT Github wiki 上查看 MQTT 代理列表。

ActiveMQ 不是为处理那么多 MQTT 连接而设计的,也没有针对 MQTT 进行优化,因为它是一个多用途的消息队列。如果您想坚持使用 Apache 软件,也许使用 Apache Apollo 会有所帮助,尽管我不知道任何具有这种规模的 MQTT Apollo 部署,但如果您需要一个多协议代理,可能值得一试。同样,我建议为大量 MQTT 连接使用专用的 MQTT 代理。

如果您想处理如此多的连接,您绝对应该研究反应式和多线程 MQTT 代理,并且您应该确保您选择的 MQTT 代理已知可以处理您所需的连接量和负载。例如,HiveMQ 能够处理 >100k 的连接。

完全披露:我在 HiveMQ 背后的公司工作。

【讨论】:

很好的建议。作为记录,我听说过部署并用它和更高版本测试了 Apollo,它就像一个魅力。如果 ActiveMQ 兼容性不是关键因素,那么专用软件可能仍然是可行的方法。 Solace 消息路由器既是多协议消息代理,又支持超过 100K 的并发 MQTT 连接。我知道这一点,因为我为 Solace 工作【参考方案3】:

当您有这么多并发会话时,我可以建议您使用Apache Apollo 进行 MQTT 连接吗?

Apache Apollo 是 ActiveMQ 的一个子项目,旨在使代理可扩展到大量连接的客户端。虽然 ActiveMQ 支持 MQTT,但它并没有真正针对这种情况进行优化。

【讨论】:

以上是关于activemq 5.10.0 支持的最大 mqtt 连接数是多少的主要内容,如果未能解决你的问题,请参考以下文章

ActiveMQ 限速对外服务

ActiveMQ之Linux下安装

ActiveMQ之Windows下安装

为啥 DB2 不使用我的 MQT 表?

使用 REST 时的 ActiveMQ 持久性问题

ActiveMq:超过允许的最大客户端连接数