問題タブ [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.
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 や自分のマシンに十分なスペースを割り当てるにはどうすればよいですか?
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 は他の場所で既に使用されています)。
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 への接続である現在の構成。
ジャムス
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) と相互運用できません。
どんな助けでも大歓迎です。
amqp - Elixir を使用した Active MQ への AMQP 接続文字列
私は ActiveMQ をメッセージ ブローカーとして使用しており、Qpid proton c ライブラリを使用してメッセージング サービス用の Erlang に接続しています。
上記の erlang で行ったのと同じように、ActiveMQ ブローカーに接続するモジュールを elixir で作成する必要があります。ただし、Erlang は qpid ライブラリを使用してメッセージ ブローカー サービスに接続されています。提案してください。
erlang - Qpid Erlang モジュール
私はerlangの初心者ですが、qpid pronton cライブラリを使用してActiveMQをerlangシェルと通信させることができました。これはうまく機能しており、erlangシェルのキュー自体からメッセージを取得しています。
ここで、キューに新しいメッセージがあるたびにいくつかの関数が呼び出される .erl ファイルを使用して、上記と同じコードを実装したいと考えています。
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 を使用したメッセージの送信はデフォルトで非同期モードになっていることがわかりました。どうやら数字は、同期モードで処理されている可能性があることを示していますか?
ここに私がすでに調べているリンクのいくつかがあります
- http://activemq.apache.org/amqp.html
- http://bhavin.directi.com/rabbitmq-vs-apache-activemq-vs-apache-qpid/
- http://activemq.2283324.n4.nabble.com/Interesting-Persistent-Messaging-Performance-td4676001.html
- http://activemq.2283324.n4.nabble.com/Any-Performance-Latency-benchmarks-for-ActiveMQ-s-AMQP-implementation-against-OpenWire-td4674713.html
- http://www.slideshare.net/ceposta/activemq-performance-tuning#
http://working-with-activemq.blogspot.com/2012/05/performance-improvements.html
認識していない ActiveMQ AMQP や QPid の構成 (接続またはチャネル用) またはチューニング オプションはありますか?
更新 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 の数値に近くありません。他の提案はありますか?
ご協力いただきありがとうございます。
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 を使用。