web-dev-qa-db-ja.com

amqp vs amqplib-Node.js amqpクライアントライブラリのどちらが優れていますか?

これらのamqpクライアントライブラリの違いは何ですか?どれが最もお勧めですか?大きな違いは何ですか?

39
Javier del Saz

Node-amqpよりも amqp.node および bramqp をお勧めします。 node-amqpには多くのバグがあり、メンテナンスが不十分であり、rabbitmqサーバーに多くの問題を引き起こす「チャネル」の概念を隠しています(閉じられないため)。

48
Carl Hörberg

私はbramqpライブラリを書いた人です。だから、私は最初から少し偏っているかもしれないと認めるつもりです。 :P

私の意見では、仕様を知っている限り、 bramqp は正常に機能するはずです。それ以外の場合は、 amqp.node を使用します


以下は、node.jsで利用可能なamqpライブラリです。

amqplib/amqp.node -promiseスタイルはまだ更新されており、かなり安定していて簡単に見える

bramqp -AMQP関数への完全な低レベルアクセスを提供します。

amqp-coffee -amqp/node-amqpと同様のコーヒースクリプト実装

amqp/node-amqp -人気、修正されたAPI、それほど頻繁に更新されない、いくつかの奇妙なバグ、安定しているが制限されている


次のライブラリは、以前のライブラリのいずれかを使用しますが、使いやすいインターフェイスを提供したり、機能を追加したりします

rabbit.js amqplib/amqp.nodeを使用

wascally amqplib/amqp.nodeを使用

amq amqplib/amqp.nodeを使用

amqpea bramqpを使用

easy-amqp amqp/node-amqpを使用

rabbus wascallyを使用


また、amqp 1.0サーバーに接続できるため、 node-amqp10 を個別に追加します。

追加する必要があるものがあれば、お知らせください。

44
bakkerthehacker

私はしばらく両方を使いました。一見、node-amqp(amqp)の方が適切なように思えるかもしれませんが、実際には非常に多くのバグがあり、誰も修正していません。インスタンスについて、

  1. RabbitMQのMQTTおよびSTOMPアダプターは、これら2つのプロトコルを使用するクライアントとAMQPを使用するクライアント間の通信を許可する必要がありますが、node-amqpはMQTTまたはSTOMPによって送信されるメッセージの解析に失敗しますが、amqp.node(amqplib)は可能です。
  2. node-amqp(amqp)は自動再接続を実装しているため、偶発的な切断で例外をスローしません。つまり、組み込みの再接続の使用を余儀なくされ、切断を検出して自分で処理することはできません。ただし、再接続は常に接続数の2倍になります。最終的にクライアントとサーバーの両方を使い果たします。 amqp.node(amqplib)を使用して、独自の再接続関数をコーディングしたいです。

私はwww.robomq.ioが提供するブローカーでテストしました。これは良いものなので、責任はライブラリーにあるべきです。ただし、Node.jsで完璧なライブラリを実装するのは困難です。

ところで、 https://github.com/robomq/robomq.io/tree/master/sdk/AMQP/の5つのシナリオでamqp.node(amqplib)を使用してサンプルコードの完全なセットを見つけることができます。 Node.js および http://robomq.readthedocs.org/en/latest/one-one/#nodejs のドキュメント。

2
EaminZ

node-amqp を使用しています

npm install amqp

これは RabbitMQ が推奨するものであり、これが私が使用している理由です。私がやってきたことから、このモジュールは私が見た他のライブラリと比較してよりドライで読みやすいです。

2
sheldonk

https://github.com/guidesmiths/rascal#rascal 言及する価値もあります。 amqplibの上に構築されており、自動再接続ロジック、構成ベースのサブスクリプション/パブリケーション、TDDの優れたサポートなどの一連の便利な機能を備えています。

0
cressie176

自分でrabbitmqを学び始めたところです。他のブログから、ampq.nodeが受け入れられていることがわかりました。私が見つけた(テストされていない)もう1つはwascallyのものです。 https://github.com/LeanKit-Labs/wascally

0
Flexpadawan