【问题标题】:MQTT vs MQ design considerationsMQTT 与 MQ 设计注意事项
【发布时间】:2012-05-16 14:17:21
【问题描述】:

我这里没有具体的查询;只需要一些设计指南。

我在Node.js , MQTT and Websockets 上看到了这篇文章。 我想我们可以使用 Node/Java + ActiveMQ + Websockets 来实现类似的目的。我的问题是如何在 MQ 和 MQTT 之间进行选择?与 ActiveMQ 相比,我可以在中大型项目中安全地使用像 mosquitto 这样的“开放”服务器吗?

This article 有一些见解,看来我应该同时使用 MQ 和 MQTT,因为如果我将来获得轻量级客户端,MQTT 可能会有所帮助。

谢谢!

【问题讨论】:

    标签: activemq mq mqtt


    【解决方案1】:

    除了 Shashi 所说的,它们具有不同的功能和用例。

    MQTT 为 pub/sub 定义了一个标准的有线协议,正如 Shashi 所指出的,它是为非常轻量级的环境而设计的。因此,它具有非常小的线路格式、一些基本的服务质量和基本的功能集。

    另一方面,传统的消息队列系统通常是专有的(尽管 AMQP 旨在改变这一点),涵盖点对点和发布/订阅,提供许多服务质量,并且往往具有更重量级的有线格式,尽管它的存在是为了支持增强的功能集,例如回复寻址、协议转换等。

    MQTT 的一个很好的例子是您在手机、平板电脑和机顶盒中拥有端点。这些具有最小的马力、内存和系统资源。通常,来自这些的连接要么保持 MQTT 并且它们之间相互通信,要么它们被桥接到企业级 MQ,在那里它们可以与后端应用程序相互通信。例如,基于 MQTT 的聊天客户端可能会通过 MQTT 代理直接与另一个客户端对话。或者,基于 MQTT 的内容交付系统将桥接到企业消息传递网络,该网络托管广告和其他内容,以交付给在手机和平​​板电脑上运行的应用程序。企业后端将管理广告投放的所有统计数据和计费所依据的观看次数,MQTT 支路允许在最终用户设备上以最少的电池或马力消耗推送内容。

    因此,MQTT 用于功耗、带宽和网络稳定性存在问题的嵌入式系统和最终用户设备。这通常与传统的 MQ 消息传递结合使用,尽管我从未见过将 MQTT 用作传统消息传递应用程序的专有传输。这大概是因为 MQTT 缺乏一些更强大的功能,例如 20 年来一直是消息传递核心的消息关联、回复寻址和点对点寻址。

    【讨论】:

      【解决方案2】:

      MQTT 协议适用于内存占用较小的小型设备,例如传感器、手机等。这些设备通常位于脆弱的网络中,并且通常具有较低的计算能力。

      这些设备通过 MQTT 协议连接到组织的后端网络,以发送和接收消息。例如,输油管道中的温度传感器会收集流经管道的油的温度并将其发送到控制中心。作为响应,可以通过 MQTT 向另一个设备发送一条命令消息,以减少/停止通过该管道的油流。

      WebSphere MQ 能够向/从 MQTT 设备发送/接收消息。因此,如果您计划实施涉及设备和传感器的基于消息传递的解决方案,您可以考虑 MQ 和 MQTT。

      HTH

      【讨论】:

        【解决方案3】:

        如前所述,MQTT 定义了一个应用性有线协议(即在传输之前如何组织和序列化信息)。 Mosquitto 或其他任何 MQTT 代理只是 Hub and Spoke Integration Pattern 的实现,就像基于 JMS 和 AMQP 的代理一样,区别在于传输级别的有线协议AMQP 定义了一个标准化的传输线协议,而不是像 ActiveMQ 这样的 JMS 代理定义了自己的专有格式,即OpenWire。当然,不是标准实现,如 Mosquitto,实现专有的有线传输协议(这会影响互操作性,但在性能方面可能是更好的选择)。

        回到问题。像 Mosquitto 这样的代理可以根据您在可扩展性和可靠性方面的需求在实际场景中使用:通常需要集群来确保 i.可用性,ii。可靠性和 iii。可扩展性。考虑 PAN(Private Area Netorks)的经纪人通常不提供 OTB(开箱即用)这样的功能 - ActiveMQ 提供了这一点。

        最后,为您选择最佳解决方案取决于您的要求。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-06-26
          • 1970-01-01
          • 1970-01-01
          • 2011-06-06
          • 2012-08-28
          • 2016-12-26
          • 2014-10-06
          • 1970-01-01
          相关资源
          最近更新 更多