Node.js和ActiveMQ之间的集成 - 如何使用

Fla*_*nix 7 javascript messaging activemq-classic amqp node.js

背景

我正在研究ApacheMQ,我们需要一个消息代理.阅读官方页面后,我看到了一些我感兴趣的功能:

但是,根据文档,我不清楚我的某些目标是否可行.

问题

我知道为了使用ActiveMQ作为代理,我首先需要一个消息传递协议.根据Node.js语言支持的文档,ActiveMQ仅支持Node.js的STOMP协议.

  1. 鉴于STOMP是一个协议,如果我找到任何其他协议的NPM库,我可以将Node.js与给定的协议一起使用吗?
  2. 如果存在这样的库,你能指出一些吗?
  3. 使用Node.js和ActiveMQ与STOMP以外的其他协议有什么警告吗?

关于EIP,我还需要一些澄清.仔细检查后,我意识到EIP只能通过Apache Camel使用,这是一个单独的项目,不支持除Java以外的任何东西.

  1. 是否可以使用ActiveMQ为Node.js提供的任何EIP?如果是这样,怎么样?

Fla*_*nix 10

放弃

我发布这个已经有一段时间了,为了将来的参考,我在这里发布我的发现.这些调查结果与我的经历有关,截至本文发表之日,这些调查结果尽可能准确.

答案

Q1:鉴于STOMP是一个协议,如果我找到任何其他协议的NPM库,我可以将Node.js与给定的协议一起使用吗?

A1:答案是肯定的.例如,使用Node.js的MQTT库,我可以与ActiveMQ代理进行通信.人们通常需要考虑一些怪癖,但它确实有效.


Q2:如果存在这样的库,你能指出一些吗?

A2:

就个人而言,我想至少看到MQTT库已添加到官方文档中,因为我相信这有助于清除用户的许多问题.


问题3:使用Node.js和ActiveMQ与STOMP以外的其他协议有什么警告吗?

A3:是的.ActiveMQ具有奇怪的身份验证要求,这导致客户端使用协议支持的版本在连接时失败(例如,以前的AMQP 1.0 npm库).此外,每个图书馆都有它的怪癖,你需要检查.通常,库的github页面或问题页面将为您提供有关ActiveMQ集成问题的一些说明,但如果创建者明确支持ActiveMQ(这并非总是如此),它会有所帮助.


问题4:是否可以使用ActiveMQ为Node.js提供的任何EIP?如果是这样,怎么样?

A4:我相信这仍然可以通过带有XML的REST DSL(尽管我们不使用Spring或类似的东西)但我找不到任何东西,也没有人真正使用它.社区未能提供有关此事的任何反馈,因为它似乎非常依赖于Java技术,而没有其他领域的知识.

结论

总的来说,如果你有一个Java项目,你可以使用ActiveMQ.如果你想使用其他任何东西,我强烈建议你避免使用它.

一切都需要Java或与它进行某种程度的集成.

您可以说ActiveMQ支持多种协议,但实际上支持您自己语言的其他工具也是如此.

即使最终,Camel提供的EIP实际上并不适用于除Java之外的其他任何东西,甚至社区也建议您自己实现这些模式,这会破坏使用ActiveMQ的全部目的.

来源

社区主题:http://activemq.2283324.n4.nabble.com/Integration-between-Node-js-and-ActiveMQ-how-to-use-td4725822.html

特别感谢rhea的作者"Gordon Sim-2" .酷项目,去看看吧!