問題タブ [qpid]

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 投票する
0 に答える
99 参照

python - qpid で複数の永続キューを作成中にエラーが発生しました

複数の永続キューを作成すると、次のエラー メッセージが表示されます。

Failed: SessionException: (None, 'Queue stage-cart: create() failed: jexception 0x0400 fcntl::clean_file() threw JERR_FCNTL_OPENWR: Unable to open file for write. (open() failed: errno=24 (Too many open files)) (MessageStoreImpl.cpp:538)')

qpid.file_countこの問題は、永続キューごとにこのメッセージを受け取るわけではなく、十分な数のキューを非永続キューに変換すると、メッセージがまったく表示されないため、に関連していることはわかっています。これが起こらないように、qpid や自分のマシンに十分なスペースを割り当てるにはどうすればよいですか?

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

activemq - ActiveMQ での AMQP 1.0 のサポート - プリフェッチを設定できない

ActiveMQ 5.9.1 の上にジョブ キュー システムを構築しようとしています。現在、クライアント コードに qpid jms ライブラリを使用しており、activemq で AMQP 1.0 サポートを使用しています。

ジョブ キュー システムの目的のために、プリフェッチを 1 に設定できることが重要です。ジョブ ワーカーが一度に 1 つのタスクのみを取得し、コンシューマー パターンが競合するようにする必要があります。qpid ライブラリは、次の行に沿って接続ファクトリ定義を使用してこれをサポートします。

ただし、ActiveMQ はこれを完全に無視しているようです。消費者は、activemq 管理コンソールにプリフェッチ 100 として表示されます。

さらに掘り下げて、次のソースを見つけました: org.apache.activemq.transport.amqp.AmqpProtocolConverter

次の行が含まれます。

これは、AMQP 1.0 プロトコルの ActiveMQ サポートが、すべてのクライアントに対して 100 のプリフェッチ値をハードワイヤすることを意味しますか? 明らかに、これは非常に間違っています。私たちの選択肢は何ですか?純粋な JMS クライアントに切り替えることはできますが、言語の相互運用性は失われます。または、サポートする別の製品を導入することを意味する、RabbitMQ に切り替えることもできます (ActiveMQ は他の場所で既に使用されています)。

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

jms - Kaazing 構成

こんにちは、以下に示すように1つのセットアップを実現したいのですが、同じ構成中にいくつかの問題に直面しています。

ActiveMQ を中心とした AMQP 1.0 アーキテクチャ (Apache Qpid JMS AMQP 1.0 クライアント) との Kaazing JMS エディションの統合。提案してください。

私が行ったことは、apache Qpid amqp 1.0 クライアントで提供される lib/ ファイル (.jar) を kaazing の lib ディレクトリにコピーしたことです。ゲートウェイ config.xml で接続ファクトリ構成を作成する必要があります。新しい構成を作成する方法と、gateway-config.xml に既にある古い構成をどうするか

openwire tcp プロトコルを使用した ActiveMQ への接続である現在の構成。

ジャムス

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

node.js - AMQP - Node.js 用の Apache Qpid クライアント

Node.js 用の Apache Qpid クライアントを探しています。

私が見つけたこのnode-qpidパッケージがありますが、READMEに記載されているように、古すぎてqpid-proton-C 0.3でもインストールできません。

基本的に、QPID C++ Broker と正常に通信できる Node.js 用の AMQP クライアントが必要です。

このようなほとんどの AMQP クライアント ( amqplib )(AMQP 0-9-1) Node.js で見つかったものは、QPID C++ Broker (AMQP 1-0 および 0-10) と相互運用できません。

どんな助けでも大歓迎です。

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

amqp - Elixir を使用した Active MQ への AMQP 接続文字列

私は ActiveMQ をメッセージ ブローカーとして使用しており、Qpid proton c ライブラリを使用してメッセージング サービス用の Erlang に接続しています。

上記の erlang で行ったのと同じように、ActiveMQ ブローカーに接続するモジュールを elixir で作成する必要があります。ただし、Erlang は qpid ライブラリを使用してメッセージ ブローカー サービスに接続されています。提案してください。

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

erlang - Qpid Erlang モジュール

私はerlangの初心者ですが、qpid pronton cライブラリを使用してActiveMQをerlangシェルと通信させることができました。これはうまく機能しており、erlangシェルのキュー自体からメッセージを取得しています。

ここで、キューに新しいメッセージがあるたびにいくつかの関数が呼び出される .erl ファイルを使用して、上記と同じコードを実装したいと考えています。

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

performance - ActiveMQ 5.10/QPid 0.28/AMQP 1.0 のパフォーマンスの問題

ActiveMQ で Openwire と AMQP を使用し、スループットに大きな変動がある場合のパフォーマンス ベンチマークを実行しようとしています。

Openwire の使用

永続的なメッセージ サイズ: 43 バイト、圧縮なし、200 の同時接続、約 9006 メッセージ/秒のスループット。

永続的なメッセージ サイズ: 1580 バイ、圧縮なし、200 の同時接続、約 3678.86 メッセージ/秒のスループット。

5% 未満のCPU にはあまり負荷がかからないため、圧縮を使用してスループットを向上させることができますが、それは別の話です。

AMQP 1.0 の使用

永続的なメッセージ サイズ: 43 バイト、圧縮なし、200 の同時接続、約 12.8 メッセージ/秒のスループット。

永続的なメッセージ サイズ: 1580 バイ、圧縮なし、200 の同時接続、約 11.9 メッセージ/秒のスループット。

私たちの構成は次のとおりです

チューニング作業:

私は次を見ました

Openwire の場合、Broker 側で tcp を nio に変更

AMQP 1.0 の場合、ブローカー側で nio に変更し、url にいくつかのオプションを追加しましたが、明らかな効果はありません

Openwire で利用可能なすべてのチューニング オプションは amqp では利用できません。特に jms.useAsyncSend=true を使用するプロデューサーでは、もちろん ack の信頼性は低くなりますが、パフォーマンスが大幅に向上しました。デフォルトでは、amqp を使用したメッセージの送信はデフォルトで非同期モードになっていることがわかりました。どうやら数字は、同期モードで処理されている可能性があることを示していますか?

ここに私がすでに調べているリンクのいくつかがあります

更新 1:

Tim が以下で指摘したように、私の比較は間違っていました。私は Openwire に Async.Send を使用し、AMQP 1.0 に Sync.Send を使用していました。AMQP 1.0 がデフォルトで Async.Send を使用するというのは私の誤解でした。Robbie は、持続メッセージには当てはまらないと指摘しました。これが正しい比較数値です

Openwire Persistent メッセージ サイズを使用した同期送信: 43 バイト、圧縮なし、200 の同時接続、100,000 メッセージ カウント、約 13.1 メッセージ/秒のスループット。

永続的なメッセージ サイズ: 1580 バイ、圧縮なし、200 の同時接続、100,000 メッセージ カウント、約 13.1 メッセージ/秒のスループット。

AMQP 1.0 パーシステント メッセージ サイズを使用した同期送信: 43 バイ、圧縮なし、200 の同時接続、100,000 メッセージ カウント、約 12.8 メッセージ/秒のスループット。

永続的なメッセージ サイズ: 1580 バイ、圧縮なし、200 の同時接続、100,000 メッセージ カウント、約 11.9 メッセージ/秒のスループット。

Openwire Persistent メッセージ サイズを使用した Async.Send: 43 バイト、圧縮なし、200 の同時接続、100,000 メッセージ数、約 9006 メッセージ/秒のスループット。

永続的なメッセージ サイズ: 1580 バイ、圧縮なし、200 の同時接続、100,000 メッセージ カウント、約 3678.86 メッセージ/秒のスループット。

AMQP 1.0 Persistent メッセージ サイズを使用した Async.Send: 43 バイ、圧縮なし、200 の同時接続、100,000 メッセージ カウント、約 21.7 メッセージ/秒のスループット。

永続的なメッセージ サイズ: 1580 バイ、圧縮なし、200 の同時接続、100,000 メッセージ カウント、約 21.2 メッセージ/秒のスループット。

ノート:

Async.Send メッセージの配信は保証されていませんが、Openwire を使用すると常に 100,000 件のメッセージをすべて受信しましたが、AMQP 1.0 では約 25% のメッセージが失われました。

AMQP 1.0 Async.Send の数値は、まだ Openwire Async.Send の数値に近くありません。他の提案はありますか?

ご協力いただきありがとうございます。

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

python - Qpid Proton Messenger API エラー処理

Qpid Proton AMQP Messenger API for Pythonを使用してメッセージを送信するときに、エラーを処理しようと必死になっています。

myqueueこれは、上で実行されている Qpid ブローカー上の存在しないキューに送信する場合の対話型 Python インタープリターからのメッセージ送信セッションの例ですlocalhost

これLINK ERRORは stdout (または stderr) に直接出力され、メッセージが API で配信されていないことを示すものはありません。status() 呼び出しは、メッセージがバッファ内にある場合は送信前に None を返し、メッセージがドロップされた場合も後に None を返します。

何か不足していますか?

Python 2.7、Qpid Proton 0.7 を使用。