Open MQ使用哪种传输协议?

时间:2013-06-06 14:56:37

标签: jms protocols amqp mqtt openmq

我听说IBM的一个人谈了MQTT,他说MQTT是目前最轻量级的消息传递协议。他的论点是,单个消息产生的最小开销是2个字节。但是,我听说HTML5 WebSockets也一样(2字节开销)?无论如何,因为我计划使用Open MQ作为消息传递应用程序的JMS提供程序,我的提供程序使用的协议对我来说很感兴趣。我无法在任何地方找到该问题的答案,我甚至用Google搜索Open MQ文档和使用Open MQ作为JMS提供程序的GlassFish文档。互联网上的一些博客文章等说AMQP,但我找不到支持该声明的可靠参考。

Open MQ使用哪种协议,你怎么知道?

2 个答案:

答案 0 :(得分:6)

我认为你混合了一些东西: MQTT 是一个应用程序级协议,并使用TCP作为传输协议。 MQTT 也可以与Websockets一起用作传输。如果您愿意, MQTT JMS AMQP 的轻量级替代品。

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

另一方面,

MQTT 非常适合遥测数据和场景,在这些场景中,您有许多客户端与单个消息代理进行通信,并且客户端的低带宽使用率,内存效率和电池寿命是键。

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

我不了解OpenMQ,但对于JMS和AMQP,我可以推荐ActiveMQ。对于MQTT,有一些经纪人,包括HiveMQMosquitto

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

答案 1 :(得分:0)

我认为OpenMQ使用STOMP作为Application Level Protocl。没有其他文档OpenMQ支持的协议比STOMP。

编辑:找到UMS协议,似乎OpenMQ默认使用此功能。 https://mq.java.net/4.3-content/ums/umsIntro.html

OpenMQ无法使用AMQP,因此我推荐使用RabbitMQ。