web-dev-qa-db-ja.com

Node.jsとActiveMQの統合-使用方法

バックグラウンド

私はメッセージブローカーが必要なプロジェクトのためにApacheMQを研究しています。 公式ページ を読むと、興味のある機能がいくつか表示されます。

ただし、ドキュメントに従って、私の目的のいくつかが可能かどうかは私にはわかりません。

質問

ActiveMQをブローカーとして使用するには、最初にメッセージングプロトコルが必要であることを理解しています。 Node.jsの言語サポート に関するドキュメントによると、ActiveMQはNode.jsのSTOMPプロトコルのみをサポートします。

  1. STOMPがプロトコルである場合、他のプロトコルのNPMライブラリを見つけた場合、その特定のプロトコルでNode.jsを使用できますか?
  2. そのようなライブラリが存在する場合、いくつか指摘できますか?
  3. STOMP以外のプロトコルでNode.jsとActiveMQを使用する際の注意点はありますか?

EIPに関しては、いくつかの説明も必要です。よく調べてみると、 EIPはApache Camel経由でのみ使用できます 、Java以外はサポートされていない別のプロジェクトであることがわかりました。

  1. ActiveMQがNode.jsで提供するEIPのいずれかを使用することは可能ですか?もしそうなら、どのように?
8
Flame_Phoenix

免責事項

これを投稿してからしばらく経ちましたが、今後の参考のために、ここに調査結果を投稿します。これらの調査結果は私の経験に関連しており、この投稿の日付の時点で、可能な限り正確です。

回答

Q1:STOMPがプロトコルであるとすると、他のプロトコルのNPMライブラリが見つかった場合、その特定のプロトコルでNode.jsを使用できますか? ?

A1:答えはイエスです。たとえば、Node.js用のMQTTライブラリを使用して、ActiveMQブローカーと通信できます。通常、考慮しなければならないいくつかの癖がありますが、それは間違いなく機能します。


Q2:そのようなライブラリが存在する場合、いくつか指摘できますか?

A2

個人的には、少なくともMQTTライブラリが公式ドキュメントに追加されることを望んでいます。これは、ユーザーからの多くの質問をクリアするのに役立つと信じています。


Q3:STOMP以外の別のプロトコルでNode.jsとActiveMQを使用する際の注意点はありますか?

A3:はい。 ActiveMQには、プロトコルでサポートされているバージョンを使用しているクライアントが接続に失敗するという奇妙な認証要件があります(例として、以前のAMQP 1.0 npmライブラリがあります)。さらに、各ライブラリには、チェックする必要のある癖があります。通常、ライブラリのgithubページまたはissuesページでは、ActiveMQとの統合の問題について説明しますが、作成者がActiveMQの明確なサポートを述べている場合に役立ちます(常にそうであるとは限りません)。


Q4:ActiveMQがNode.jsで提供するEIPのいずれかを使用することは可能ですか?もしそうなら、どのように?

A4:これはREST DSL with XML(使用していなくても)でも可能だと思います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 の作者である「GordonSim-2」に感謝します。かっこいいプロジェクト、チェックしてみてください!

10
Flame_Phoenix

Flame_Phoenixで述べたように、HTTPプロトコルを使用してメッセージを簡単に公開および受信できます

Publish

Receive

詳細情報: https://activemq.Apache.org/rest

0
aillusions