問題タブ [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.
java - qpid-bench 出力の解釈
パフォーマンスをベンチマークするために、いくつかの異なるマシンに対して Apache qpid に付属の qpid-bench ツールを実行しています。qpid-bench プログラムからの出力/結果に関するドキュメントを見つけることができませんでした。サンプル テストの結果は次のとおりです。
NP は公開された数、NC はウィンドウごとに消費された数だと思います。最初の数字は、送受信されたメッセージの数です。2 番目と 3 番目の数字の意味は何ですか?
java - Apache qpid を使用しているときに JMS メッセージングでプロデューサー フロー制御を処理する方法
プロデューサー側でフロー制御の状況を処理しようとしています。最大キューサイズが設定された qpid-broker にキューがあります。また、キューに flow_stop_count と flow_resume_count を設定します。
現在、プロデューサは、この flow_stop_count に達するまでメッセージを継続的に生成し続けます。このカウントに違反すると、Exception リスナーによって処理される例外がスローされます。しばらくすると、キューのコンシューマーが追いつき、flow_resume_count に到達します。問題は、プロデューサーがこのイベントをどのように知るかです。
プロデューサーのサンプルコードは次のとおりです。
および例外リスナーの場合
現在、exceptionlistener は例外の一般的なリスナーであるため、それを介してプロデューサー フローを一時停止することはお勧めできません。
私が必要としているのは、メッセージを送信する前に確認するために使用できるproduer.isFlowStopped()のようなプロデューサー レベルのメソッドです。そのような機能は qpid api に存在しますか?
qpid Web サイトには、これを実行できることを示唆するドキュメントがいくつかあります。しかし、これが行われている例はどこにも見つかりませんでした。
この種のシナリオを処理する標準的な方法はありますか。
android - Android: javax を強制する Android のリフレクションから JNDI ファクトリをインスタンス化する
移植しようとしています: Apache Qpid クライアント、JMS、および JNDI -- Android へ。Dalvik に --core-library パラメータを渡して JMS/JNDI 用の javax パッケージを許可した後、ant デバッグ インストール ターゲットを実行すると、QpidDroid プロジェクトのコンパイル/ビルドを成功させることができます。jarjar を使用して javax クラスを別のパッケージ名前空間に再パッケージ化/リファクタリングすることを検討する前に、これを実行したいと考えています。
Oracle の Web サイトで現在提供されている古い/最初の別個の JNDI jar を使用しているため、これは法的に正当であると思います。私は Qpid で Apache Geronimo に付属の JMS jar を使用していますが、別のダウンロードとして Oracle からも入手できると思います。私の開発環境では、Android プラットフォーム 2.1 と jdk 1.6 を使用しています。
問題は、現在、カスタム JNDI 接続ファクトリをインスタンス化できないように見えることです: PropertiesFileInitialContextFactory. これは、私の QpidDroid プロジェクトの .java ソース ファイルです (libs jar の .class ではありません) (qpidClient jar からクラスを抽出しました)。
なぜここでインスタンス化できないのか、誰かが考えているでしょうか? プロガードがリフレクションを壊しているのではないかと思っていましたが、デバッグ ant タスクでビルドしているので、プロガードをまったく実行してはいけないと考えています。インストールしたアプリをエミュレーターで実行すると、例外が発生します。同じマシン上で Apache Qpid サービスを実行しており、デフォルトのポートが使用されています。
ヒントをありがとう!
jms - JMS APIで同じ交換を使用してqpidでキューを指定する方法は?
私は例に従っています
ここでは、1 つの交換と 1 つのキューがあります。同じ交換で別のキューにメッセージを送信する方法は? メッセージでルーティング情報を指定する方法は?
Java / JMS API を使用しています
jms - すべてのAMQPブローカーで動作するJMSAPI/クライアントはありますか?
JMSは、Javaスペースでのメッセージングに対するベンダー中立のAPIです。AMQPの使命は、「すべてのメッセージングミドルウェア間の相互運用性の標準プロトコルになる」ことです。AMQPベンダー間で相互運用可能なJMSクライアントの実装を探しています。具体的には、RabbitMQまたはQpidのいずれかと通信できると便利です。
java - ApacheQpid-メッセージレベルでルーティングキーを設定します
ApacheQpidでメッセージレベルでルーティングキーを設定するオプションはありますか。私の現在のやり方は
アドレス文字列でルーティングキーを指定します。この宛先アドレスでプロデューサーを作成します。
トピック=(トピック)context.lookup( "destination"); 送信者=session.createProducer(トピック);
プロデューサーを介してメッセージを送信します。
このようにして、すべてのメッセージが同じルーティングキーを持ちます。私が達成したいのは、各メッセージのルーティングキーを個別に設定することです。
これができるかどうか教えてください
python - python qpidメッセージエンコーディング
Python で amqp ブローカーからメッセージを受信しようとしています。これが私のコードです:
しかし、メッセージを印刷しようとすると、奇妙なエンコーディングで表示され、メッセージのエンコーディングを変更する方法がありません。
私が間違っていることは何ですか?
java - Apache Qpid/Redhat MRG - さまざまなシステム間で移植可能な方法で日付を送信する
Apache qpid は、日付型オブジェクトの送信を直接サポートしていません。Apache Qpid を使用してデータベースおよび日付オブジェクトから取得した datetime を、異なるシステム (C++/Java または Apache qpid を使用する他の言語を使用するシステム) 間で移植可能な方法で送信したいと考えています。
タイムゾーンの解決などのすべての通常の処理が問題なく処理されるようにするにはどうすればよいですか。
java - 接続せずにAMQConnection接続文字列を検証しますか?
Apache Qpid JavaクライアントAPIには、Qpidメッセージブローカーへの接続を確立するために使用されるAMQConnectionクラスがあります。単一文字列コンストラクター(AMQConnection(String connection)
)を使用しています。最初に接続文字列を作成し、次にAMQConnectionコンストラクターに渡すユーティリティメソッドがあります。
接続文字列の形式はamqp://<username>:<password>@<clientID>/?brokerlist='tcp://<hostname>:<port>'
。
コンストラクターに誤った構文の接続文字列が渡されると、コンストラクターは。をスローしURLSyntaxException
ます。
接続文字列の構文チェックをユーティリティメソッドに移動したいのですが(壊れた情報を返すことはできないと思います)、接続文字列を検証する方法が見つかりませんでした。メッセージブローカーへの接続を設定します。URLSyntaxException
これを行う方法はありますか、それともコンストラクターからスローされることに依存する必要がありますか?
c++ - QPID C++ クライアント マルチスレッド最適化
メッセージ トラフィックが多い場合に最適なパフォーマンスを得るために、C++ Apache QPID クライアントをスレッド化する最良の方法を探しています。
私たちのブローカーには 3 つの取引所があり、それぞれに 2 つの単方向キューがあります。C++ クライアントがプッシュする 3 つの「アップリンク」キューにかなりのトラフィックが発生します。
QPID ブローカーとのインターフェースに使用されるいくつかのまばらに文書化されたクラスがあります。接続、セッション、送信者、および受信者。接続はセッションを提供し、セッションは送信者または受信者を提供します。さまざまな QPID ドキュメントを読んだ後、これらのオブジェクトのどれがスレッド セーフ (またはスレッド セーフではない) であるか、またはクライアント ライブラリでスレッドが作成される結果になるかが不明です。QPID FAQ によると、ブローカーでのスレッド化はセッション レベルで発生します。クライアントのどこで発生するかについては言及されていません。
アップリンク キューの 1 つにデータをプッシュする必要があるクライアント アプリケーション内には、複数のスレッド コンテキストがあります。複数のコンテキストにサービスを提供するセッション、接続、または送信者のプールを持つのが最善ですか? それとも、QPID にはこのシナリオの内部で最適化が組み込まれているので、1 つの共有 Sender で十分である可能性がありますか?
目標は、シングル スレッドのボトルネックをどこかに置かないようにすることですが、存在するトラフィック負荷ごとに効率的に並行してスケーリングできるようにすることです。