Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 从STOMP/AMQP中选择哪一个?_Node.js_Jms_Amqp_Stomp - Fatal编程技术网

Node.js 从STOMP/AMQP中选择哪一个?

Node.js 从STOMP/AMQP中选择哪一个?,node.js,jms,amqp,stomp,Node.js,Jms,Amqp,Stomp,我使用node.js作为jms主题的客户端。有两种协议可用于在主题上建立连接。 论文是Stomp和AMQP。我在网站上读到了他们的简介 和。两者似乎都是线级协议,即 通过网络以八位字节流的形式发送的数据。我找不到任何数据 具体原因是哪一个应该优先。如果有人能说明这一点,这将是有益的 另一点是,协议以声明它们是可互操作的而自豪。可互操作的术语是否意味着 想要脱离特定的MessageBroker实现,比如说ApacheActiveMQ,而是想要插件WebSphereMQ,transition 将是平

我使用node.js作为jms主题的客户端。有两种协议可用于在主题上建立连接。 论文是Stomp和AMQP。我在网站上读到了他们的简介 和。两者似乎都是线级协议,即 通过网络以八位字节流的形式发送的数据。我找不到任何数据 具体原因是哪一个应该优先。如果有人能说明这一点,这将是有益的

另一点是,协议以声明它们是可互操作的而自豪。可互操作的术语是否意味着 想要脱离特定的MessageBroker实现,比如说ApacheActiveMQ,而是想要插件WebSphereMQ,transition
将是平滑的(前提是同时支持AMQP/STOMP或任何其他wire-levl协议)?

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

通常情况下,还有其他因素要考虑,特别是如果您的消息大小/计数等并不意味着在性能方面有明确的赢家,并且没有一个协议以另一种方式不符合您的功能要求。 特别是提示,在不同的STOMP代理实现中可能存在更多的碎片

STOMP…使用带有“目的地”的发送语义字符串。代理必须映射到其内部理解的内容,如主题、队列或交换。然后,消费者订阅这些目的地。由于规范中未强制要求这些目的地,不同的代理可能支持不同风格的目的地。因此,在b和b之间移植代码并不总是简单的韩国人


至少使用AMQP(它将互操作性作为其最重要的优势之一)切换提供程序/语言的唯一问题是设置所述新提供程序时所固有的问题。例如,我读过ZeroMQ可能比RabbitMQ承担更多的配置工作,但这并不是因为AMQP特有的任何属性。

在我看来,需要检查的一个重要方面是基于文本的protocols(STOMP)与二进制协议(AMQP)。相对于文本协议,二进制协议往往更快、更轻量级。另一方面,基于文本的协议通常更具互操作性。想想使用Corba的RPC与Web服务:)我们喜欢Http,因为它是基于文本的。。。我们有像Firebug这样的工具来阅读这些信息。那跺脚的工具呢?线鲨?其他的?