問題タブ [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.
.net - タイムアウト付きの 1 つの RabbitMQ メッセージを待機する
RabbitMQ サーバーにメッセージを送信してから、(「返信先」キューで) 返信メッセージを待ちたいと思います。もちろん、これらのメッセージを処理するアプリケーションがダウンした場合に備えて、永遠に待ちたくはありません。タイムアウトが必要です。非常に基本的な作業のように思えますが、これを行う方法が見つかりません。py-amqplibとRabbitMQ .NET clientの両方でこの問題に遭遇しました。
私がこれまでに得た最善の解決策は、中間で使用basic_get
してポーリングするsleep
ことですが、これはかなり醜いです:
確かに何か良い方法がありますか?
ruby-on-rails - Rails アプリ内の AMQP サブスクライバー
Rails アプリで AMQP サブスクライバーを開始することはできますか? おそらくイニシャライザなどを介して。
Railsモデルとやり取りできると同時に実行したいと思います。以下は、私が意味することの疑似コードの例です。
ruby - RabbitMQ でキューと交換を一覧表示するための API はありますか?
私はかなり調べましたが、RabbitMQ サーバー上のキューを一覧表示する適切なプログラム方法を見つけることができませんでした。
キューとエクスチェンジを使い終わったらクリーンアップする必要があるため、これは重要です。クリーンアップのトリガーに使用できる適切な「完了」イベントが常にあるとは限らないため、ガベージ コレクション モデルをもっと使用して実行したいと考えています。キューを一覧表示できれば、関連するオブジェクトがこれ以上エントリを生成しないことを確認し、それらをクリーンアップできます。
使用できることはわかってrabbitmqctl
いますが、それには昇格された特権が必要です。
プログラムでキューをリストする方法を見つけることができなかったので、データベースに名前のリストを保持しています。それは機能しますが、醜いです。
c# - C# および Java EDA 用の Apache Camel ESB
イベント ドリブン アーキテクチャ (EDA) を使用して大まかなビジネス サービスの一部を統合することを検討しており、これらのサービスのサーバー側 (REST) は Java と .NET (C#) の両方で実装されています。私たちは当初、RabbitMQ (および AMQP プロトコル) をニュートラルでオープンな手段 (これら 2 つの言語での優れたクライアント サポート) として使用することを考えていましたが、Java と CLR と共に別のランタイム (Erlang) をサポートする必要があることを意味します。また、AMQP プロトコルの Java ブローカー実装を備えている Apache qPid も検討しています。これにより、その懸念が解消される可能性があります。
ActiveMQ の上でよりリッチな Apache Camel ESB を使用して Java と .NET サービスを Pub-Sub EDA 方式で統合しようとした経験のある人はいますか? これを通るルートに関して、他に考えられる提案を見逃していませんか?
ありがとう
xmpp - メッセージの受け渡しやリアルタイムのアクティビティ ストリームにcouchdbを使用してはいけない理由はありますか?
ampq または xmpp (rabbitmq または ejabbered、バックエンドとしてカウチデータベースを持つことができる) を使用することは、更新が小さいが頻繁に行われるソーシャル ゲーム プラットフォームでフレンドの状態に関するリアルタイムの更新を配信するのに適しているように思えますが、なぜそうなるのか考えずにはいられません。そのような更新を配信するのに、couchdb は良いプラットフォームではないでしょうか?
私が考えることができる主な利点は、友人と変更APIの可用性に基づいて更新をフィルタリングする機能です。これにより、そのようなアプリケーションの開発とその管理(レプリケーションを含む)が、方法を考える必要があるampqやxmppと比較して非常に簡単になります。 pubsub ノードを管理し、いつでも誰がサブスクライブしているかを管理します。
しかし、これはうますぎると思わずにはいられません。couchdb の欠点に関する情報が見つかりません。どういうわけか、メッセージ パッシングに MySQL を使用しているように感じます。
そのようなアプリケーションにcouchdbを使用した経験のある人はいますか? 使用する別のプラットフォームをお勧めしますか?
ruby - RubyAMQPの初期化されていない定数エラー
私はこのコードを試していました(ここのオンライン記事から得ました:http ://www.randomhacks.net/articles/2009/05/08/chat-client-ruby-amqp-eventmachine-shoes )
しかし、次のエラーが発生しました。
その後、開発環境でAMQPを使用して別のサンプルコードを試しましたが、すべてがそのエラーを示しています。したがって、問題はコードにはなく、私の開発環境の問題です。誰かが私の開発環境の問題を指摘できますか?前もって感謝します。
php - リアルタイム ブラウザ ベースのゲームには、AMQP と XMPP のどちらを選択する必要がありますか?
ブラウザベースのフラッシュフリーの JavaScript を使用したリアルタイムのターン制ゲームで、AMQP (RabbitMQ) と XMPP (eJabberd) のどちらかを選択しています。AMQP と XMPP プロトコルについてはよくわかりません。ユーザー認証と MySQL でのデータストア取得に PHP を使用したいと考えています。私の知る限り、RabbitMQ には PHP クライアントがありますが、eJabberd にはありません。
私が理解したのは、javascriptクライアントがPHPスクリプトを呼び出して必要な処理を操作し、AMQPまたはXMPPサーバーに渡して相手プレイヤーにデータを渡すことです。Wrox の「Pro XMPP Programming with JS and jQuery」という優れた本がありますが、PHP の例はありません。以下は私の質問です。
1) 私のゲームにはどのプロトコルが適していますか?
2) PHP クライアントのサポートのためだけに、RabbitMQ を選択しますか?
java - Java JMS メッセージング
メッセージをサーバーに送信し、サーバーがqpidメッセージングを介してメッセージを受信する実際の例があります。サーバーに送信する単純な hello world は次のとおりです。
そして、ここにリクエストを受信してレスポンスを送信するサーバーがあります(現在のクライアントはレスポンスを受信しません):
ここに私のプロパティファイルがあります:
それらはすべて完全に機能し、Qpid JMX 管理コンソールを介して qpid キュー内のメッセージを確認できます。これらの例は、https://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/exampleからダウンロードされます(誰かがそれを必要とするかもしれません)。
以前にSpringを使用してJbossメッセージングを行ったことがありますが、qpidで同じことを行うことができません。applicationsContext 内の jboss では、次のような Bean jndiTemplate、conactionFactory、destinationQueue、および jmscontainer がありました。
そしてもちろん送信者とリスナー:
ここで、Spring コンテキスト ロジックを使用して、この qpid の例を書き直したいと思います。誰でも私を助けることができますか?
shell - メッセージの確認 apache Qpid
unix/windows コンソールから Qpid キューからのメッセージを確認することは可能ですか?
GUI経由で確認する方法は次のとおりです。
http://i47.tinypic.com/pbu5d.gif
Qpid JMX Management Console からすべての情報を確認できます。コンソールで使用できるこれに近いものはありますか?
python - メッセージ キューを介したユーザー ベースの通知用の Comet
Comet (AJAX Push) を使用して個々のユーザーに通知を送信するアプリケーションを構築しようとしています。ほとんどの通知のタイムアウトはかなり短くなります。
RabbitMQ を実行しているので、AMQP を介してメッセージを送信するのが最も簡単です。Comet サーバーとキュー サーバーの両方が簡単に機能するように、個々のユーザーに対処する最善の方法は何かを考えています。
Carrotを Orbited、Tornadoなどで使用するなど、多くのソリューションを検討しました 。
comet サーバーがすべてのユーザーに対して 1 つのコンシューマー (キューを使用) を登録する場合、これらのコンシューマーはタイムアウト付きで保持するか、使用するたびに破棄する必要があります。どちらのソリューションもあまり有望ではないようです。Tornado/Carrot では、次のようなことが可能になると思います。
または、comet サーバーはキューのコンシューマーを 1 つだけ持つことができ、ユーザーが接続して使用するまで着信通知をキャッシュできる独自の軽量メッセージ キューを実装する必要があります。これは memcached が適しているように思えますが、私は経験がありません。
ここで最善のアプローチは何でしょうか?