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

时间:2015-01-11 07:21:13

标签: activemq scaling mqtt connection transport

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

  

transportConnector name =" mqtt" allowLinkStealing ="真"   URI =" MQTT + NIO://0.0.0.0:1883 maximumConnections = 100000&安培; wireFormat.maxFrameSize = 104857600&安培; transport.defaultKeepAlive = 60000&安培; transport.closeAsync =假安培; useQueueForAccept =假

activemq.xml

但没有用。 我做了一些unix内核调优,打开文件fds的数量为100000。 有谁解决了这个问题?

3 个答案:

答案 0 :(得分:5)

如果你打算处理> 100k连接我建议查看专用的MQTT代理而不是多协议消息代理。您可以在MQTT Github wiki查看MQTT代理列表。

ActiveMQ不是为处理那么多MQTT连接而设计的,并且没有针对MQTT进行优化,因为它是一个多用途的Message Queue。如果您想坚持使用Apache软件,也许使用Apache Apollo可以提供帮助,虽然我不知道任何具有该大小的MQTT Apollo部署,但如果您需要多协议代理,可能会尝试。同样,我建议使用专用的MQTT代理来处理大量的MQTT连接。

如果要处理大量连接,您一定要查看被动和多线程MQTT代理,并且应该确保您选择的MQTT代理已知可以使用您所需的连接数量和负载。例如HiveMQ能够处理> 100k连接。

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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