MQTT和ActiveMQ有啥区别?wmqtt.jar和mqttv3.jar又有啥区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MQTT和ActiveMQ有啥区别?wmqtt.jar和mqttv3.jar又有啥区别相关的知识,希望对你有一定的参考价值。

ActiveMQ 这个也没有研究过,最近打算弄个聊天所以也看了下MQTT,不过也是一头雾水,看到有些人是使用 Mosquitto:An Open Source MQTT v3.1 Broker 做的(broker)代理,好像这个更简单一点儿,
还有的是用:MQTT的学习研究(二)moquette-mqtt 的使用之mqtt broker的启动
如果你只是需要推送功能的话,可以使用第三方的推送试试,比如极光,百度等,有好多的

我的理解是:MQTT他只是定义了一种通讯协议,给我们封装好了一些socket连接,让我们方便调用,像 Mosquitto 和ActiveMQ只是基于这个协议实现的代理,而wmqtt.jar 是在移动端实现接收和发送消息的接口供我们调用!
参考技术A mq是队列 tt是推送 mqtt是 推送队列 mq是单纯的队列 推送的话 不能一下子全部推送完 也是需要队列一个一个来推送

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

【中文标题】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,但它并没有真正针对这种情况进行优化。

【讨论】:

以上是关于MQTT和ActiveMQ有啥区别?wmqtt.jar和mqttv3.jar又有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

activemq消息队列和kafka有啥区别

MQTT协议和TCP协议有啥区别?为啥人们推荐MQTT协议?

日志采集系统flume和kafka有啥区别及联系,它们分别在啥时候

如何从 MQTT 生产并在 ActiveMQ 中作为 MQTT 和 JMS 消费

Apache Activemq 和 Mqtt

ActiveMQ 中是不是支持 MQTT 队列?