問題タブ [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 を使用。