哪一个可以从STOMP/AMQP中选择?

M S*_*ach 10 jms stomp amqp node.js

我使用node.js作为jms主题的客户端.有两个协议可用于在主题上建立连接.论文是Stomp和AMQP.我在http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocolhttp://en.wikipedia.org/wiki/Streaming_Text_Oriented_Messaging_Protocol上阅读了有关它们的简要介绍.两者似乎都是线路级协议,即通过网络作为八位字节流发送的数据.我没有找到任何应​​该首选的具体原因.如果有人可以阐明它,那将会很有帮助.

另一点是协议引以为豪的是说它们是可互换的.可互操作的术语是否意味着如果有人想要取消特定的消息代理实现,请说apache active MQ而不是想要插入Websphere MQ,转换将是顺利的(前提是支持AMQP/STOMP或任何其他线路levl协议)?

eeb*_*sen 3

您可能会看到性能差异(根据许多因素(包括消息大小和队列条目的持久性要求)参考此基准。

\n

通常情况下,还需要考虑其他因素,特别是如果您的消息大小/计数等。并不意味着在性能方面有明显的赢家,并且没有一种协议能够以另一种协议无法满足您的功能需求的方式。

\n

本文特别暗示不同 STOMP 代理实现中可能存在更多碎片。引用那篇文章

\n
\n

STOMP...使用带有 \xe2\x80\x9cdestination\xe2\x80\x9d 字符串的 SEND 语义。代理必须映射到它内部理解的内容,例如主题、队列或交换。然后消费者订阅这些目的地。由于规范中没有强制要求这些目的地,因此不同的代理可能支持不同风格的目的地。因此,在代理之间移植代码并不总是那么简单。

\n
\n

至少对于 AMQP(它宣称互操作性是其最重要的优势之一),切换提供程序/语言时唯一应该遇到的问题是设置所述新提供程序所固有的问题。例如,我读过 ZeroMQ 可能比 RabbitMQ 需要更多的配置工作,但这并不是真正由于 AMQP 特定的任何属性造成的。

\n