問題タブ [node-amqp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
403 参照

javascript - amqplib - キューにあるコンシューマの数は?

Node JS と RabbitMQ の amqplib モジュールを使用して、

1) キューに登録されているサブスクライバーの数を知る方法はありますか?

2) 各キューに 1 つのコンシューマー キーを持たせるにはどうすればよいですか?

ありがとう!

0 投票する
1 に答える
767 参照

javascript - エラー: 送信後にヘッダーを設定できません。NodeJS 応答に干渉する RabbitMQ

http 応答の後、RabbitMQ (チャネルの作成など) を使用して混乱を送信していますが、サーバーは「エラー: 送信後にヘッダーを設定できません」と不平を言っています。

コードは次のとおりです。

RabbitMQ が応答の後にヘッダーを設定していると仮定します (応答の前に RabbitMQ メッセージを送信しようとしましたが、何も解決しませんでした)。

スタック トレースは次のとおりです。

解決策やアイデアは大歓迎です。

0 投票する
0 に答える
1150 参照

javascript - node.js amqp クライアントにキューが既に存在するかどうかを確認する方法は?

次のシナリオがあります。amqp クライアントを使用して、rabbitmq の pub/sub モデルを実装したいと考えています。特定の ID を購読している購読者がいます。そのIDの名前でキューを形成したい。その特定の ID にサブスクライブしたいすべてのサブスクライバーがその特定のキューにサブスクライブするようにします。だから私は、その ID を持つすべてのサブスクライバーの特定の ID に基づいて一意のキューを形成したいと考えています。しかし、私の場合、同じIDに対して異なるキューを形成しています(推測)。その結果、特定の ID のサブスクライバーは、すべてのサブスクライバーがすべてのメッセージを受信するにもかかわらず、ラウンド ロビン方式ですべてのメッセージを受信できます。以下は、私が使用しているコードです。

node-amqp モジュールのドキュメントを見てきました。しかし、キューの存在を確認するオプションが見つかりませんでした。いくつかの「永続性」オプションがありました。しかし、私はそれがうまくいくとは思わない。助けてください....よろしくお願いします..

0 投票する
2 に答える
847 参照

node.js - 同じ rabbitMQ キューのリスナーでもあるパブリッシャーを除くすべてのサブスクライバーにメッセージを送信する方法

nodeJSサーバーで使用されるrabbitMQがインストールされています。私は rabbit.js ライブラリを使用してウサギとやり取りしていますが、これまでのところ満足しています。

ファンアウトモードで同じキューに複数のサブスクライバーを取得しました。各ノードはサブスクライバーであり、パブリッシャーでもあります。これは私にとっては良いことであり、正常に動作します。発生した更新についてすべてのサーバーに通知したい状況がたくさんあるためです。それらのノードの1つ(パブリッシャーでもあります...)

私は、メッセージを送信した人 (同じキューのリスナーでもある) を除いて、キューのすべてのリスナーにメッセージを送信する必要がある場合に遭遇しました。

誰がリッスンしているか事前にわからないため (単一の場合もあれば、数百万の場合もあります)、ホワイトリスト ルート ルールによって特定のノードにルーティングすることはできません。それはある種の除外ワイルドカード ルーティング ルール (ブラックリスト) である必要があります。

rabbit.js を使用して実行できますか? どういうわけかrabbitmqでそれを行うことさえできますか?

私はうさぎをあまり知らないので、優しくしてください :)

ところで、rabbit.js を使用してそれを行う方法を知っていれば、さらに良い...

編集::

Derick Bailey のリクエストによると、これが必要な理由です。

webServicesとして動作する負荷分散されたnodeJSサーバーが多数あるシステムがあります。それらは互いに完全に透過的です。他のノードが存在するかどうかは誰も知りません。この分離により、他の「並列」ノードを追加および削除するだけで、より簡単にスケーリングできるため、この方法を維持したいと思います。

これらの各ノードには、独自のインメモリ ローカル キャッシュ サービスがあります。そして、単一のノードがエンティティを更新する状況に遭遇しました。次に、このノードが他のすべての並列ノード (キャッシュ内に同じエンティティを持つ可能性がある) に通知して無効化できるようにする必要があります。

問題は、メッセージを送信するノード (更新ノード) もメッセージを受信することです。これは、彼がリスナーでもあるためです。だから私は彼にその特定のメッセージの受信者リストから何らかの形で自分自身を除外してもらいたい... したがって、ルーティングブラックリストが必要です。(彼は自分自身を知っているので、彼自身のIDを除くすべての人にルーティングすることができます...しかし、彼は誰かが実際に相手側で聞いているかどうかさえ知りません...したがって、それは間違いなくホワイトリストにはなりません)

私の必要性が今より明確になることを願っています。

私はすでに私の問題の解決策を考えていましたが、それには私の側で追加の開発が必要であり、ウサギの現在の能力を使用してそれを回避したいと考えています (可能な場合) コンテンツに一意の ID を追加するだけですメッセージの。送信ノードは、このメッセージが自分からのものであることを認識し、そのメッセージを無視できます。しかし、明らかに理解できるように、失敗する可能性のある追加の落とし穴やその他のエッジケースを考慮する必要があるため、これは扱いにくいものになる可能性があります...

誰かがウサギの既存の構成を使用してそれを行う方法を教えてくれれば、私はその方法を聞いてうれしいです:)

0 投票する
3 に答える
3873 参照

node.js - RabbitMQ 経由で配列を送信する

RabbitMQ を使用してメッセージの配列を送信するにはどうすればよいですか? すべてのメッセージを個別に送信したくありません。

例えば:

どうすれば次のようなものを使用できますか:

ありがとうございました!

0 投票する
1 に答える
70 参照

node.js - amqplib nodejs パッケージは、rabbitmq または AMQP 通信にのみ使用できますか?

RabbitMQ Web サイトには、Javascript NodeJS の入門チュートリアルがあり、amqplib パッケージnpm install amqplib https://www.npmjs.com/package/amqplibを使用するよう求められます。

ただし、amqplib パッケージは、RabbitMQ の AMQP 実装に固有のものではなく、より一般的なものに見えます。それで、amqplib nodejs パッケージは rabbitMQ だけに使用できるのか、それともあらゆる種類の AMQP 通信に使用できるのか疑問に思っていました。

PSキューとrabbitmqとamqpを扱うのはこれが初めてなので、この分野についての背景はまだあまりありません。

0 投票する
1 に答える
651 参照

node.js - エラー: node-amqp でしばらくしてから ETIMEOUT を読み取る

私は、RabbitMQ インスタンスが実行されている VM と、キューから何かを消費する Node プロセスを備えた別の VM を持っています。

しばらく非アクティブ状態が続くと、ノード プロセスが終了し、エラーが表示されます。Node プロセスを永久に存続させていますが、エラーは次のようになります。

両方の VM は、Azure で実行されている Ubuntu 14.04 です。El Cap を実行している Macbook Pro ではローカルで同じ問題が発生しなかったことに注意してください。フラグが足りないような気がしますか?

に接続していますamqp://my.example.com

0 投票する
2 に答える
439 参照

node.js - RabbitMQ パブリッシングでキューが必要なのはなぜですか?

Node.js とnode-amqpを使用して単純なメッセージ キューを作成しています。私が目にするほとんどの例では、次のことを行っています。

  1. 接続を作成する
  2. 交換を作成する
  3. キューを作成して Exchange にバインドする
  4. 取引所経由で公開

私のコードでは、発行には使用されないため、キュー (ステップ 3) を省略しています。

これでよろしいですか?または、キューに理由がありますか?

0 投票する
0 に答える
300 参照

node.js - SailsJs で RabbitMQ キューにサブスクライブする

SailsJs を使用して RabbitMQ キューにサブスクライブする方法 (ウォーターライン アダプターなし)。amqp.node https://github.com/squaremo/amqp.nodeを使用する場合のみ。そしてクライアントの要求なし。

私の理解では、コントローラーは http リクエスト用です。私が欲しいのは、RabbitMQ キューに接続していくつかのことを行うための何かを取得することです。しかし、これは http リクエストから発生するべきではありません。