jms - Open MQ 使用哪种传输协议(protocol)?

标签 jms protocols amqp mqtt openmq

我听到一个来自 IBM 的人谈论 MQTT他说 MQTT 是迄今为止最轻量级的消息传递协议(protocol)。他的论点是单个消息产生的最小开销是 2 个字节。但是,我也听说过关于 HTML5 WebSockets 的相同(2 字节开销)?无论如何,因为我打算使用 Open MQ作为消息传递应用程序的 JMS 提供者,我对提供者使用的协议(protocol)产生了兴趣。我无法在任何地方找到该问题的答案,我什至搜索了 Open MQ 文档和使用 Open MQ 作为 JMS 提供程序的 GlassFish 文档。网上一些博文之类的说AMQP但我找不到可靠的引用来支持该声明。

Open MQ 使用哪种协议(protocol),您怎么知道?

最佳答案

我认为您将一些事情混为一谈:MQTT 是一种应用程序级协议(protocol),并使用 TCP 作为传输协议(protocol)。 MQTT 也可以与 Websockets 一起用作传输。如果您愿意,MQTT 是 JMS 和 AMQP 的轻量级替代品。

AMQP 是一种流行且可靠的 JMS 替代方案,非常适合业务和任务关键型消息传递。它功能非常丰富,应用广泛。请注意,AMQP 是一种消息传递协议(protocol),而 JMS 是一种 API(甚至可以使用 AMQP 作为传输)。您可以在带有库的 Java 应用程序中直接使用 AMQP,例如 RabbitMQ Java Client。 .

另一方面,MQTT 非常适合遥测数据和场景,其中您有许多客户端与单个消息代理进行通信,并且客户端的低带宽使用、内存效率和电池生命周期是关键。

JMS 没有定义任何传输协议(protocol)(与 MQTT 相比),任何东西都可以在这里使用。我个人认为 TCP 也很适合这里。

我不了解 OpenMQ,但对于 JMS 和 AMQP,我可以推荐 ActiveMQ .对于 MQTT,有一些代理,包括 HiveMQMosquitto .

强制性免责声明:我是 HiveMQ 的开发人员,所以我可能有点偏见 ;-)

关于jms - Open MQ 使用哪种传输协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16965444/

相关文章:

java - Apache Camel 中的窃听和多播有什么区别

ios - 面向协议(protocol)编程

c - 使用引擎 API 的 Qpid Proton 客户端不向服务器发送消息

java - JMS适合做网游吗?

queue - JMeter JMS 点对点队列测试 - "No reply message received"

ios - 协议(protocol)和委托(delegate)之间的区别?

node.js - 无法使用 AMQP 和 Node 从 Azure 服务总线队列发送 "Peek"消息

excel - 如何在 Excel 中进行分布式计算

java - 通过 MOM 在 WAS 集群内传播配置

Swift 作为重载