哪一个可以选择STOMP / AMQP?

时间:2012-11-14 11:30:38

标签: node.js jms amqp stomp

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

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

1 个答案:

答案 0 :(得分:2)

您可能会看到性能上的差异(请参阅this benchmark基于许多因素,包括队列条目的邮件大小和持久性要求。

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

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

  

STOMP ...使用带有“目标”字符串的SEND语义。代理必须映射到内部理解的内容,例如主题,队列或交换。消费者然后订阅这些目的地。由于规范中没有强制要求这些目的地,因此不同的经纪人可能会支持不同的目的地风格。因此,在经纪人之间移植代码并不总是直截了当。

至少在AMQP(将互操作性作为其最重要的优势之一)中,切换提供商/语言应该具备的唯一问题是设置所述新提供商所固有的问题。例如,我读过ZeroMQ可能比RabbitMQ需要更多的配置工作,但这并不是因为AMQP特有的任何属性。