問題タブ [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.
linux - ubuntu 用の安定したシンプルな amqp サーバー
Ubuntu 10.04 64 ビット OS で Python クライアントを使用して、rabbitmq-server を amqp サーバーとして使用しています。
Rabbitmq-server が起動に失敗するようになりました。最新の rabbitmq-server 1.8.0 をアンインストールしてインストールしましたが、それでも rabbitmq を動作させることができませんでした。
ubuntuシステムでamqpを使用するには、学習曲線が少ない他の代替手段が必要です。1つお勧めできますか?
python - py-amqp / flopsy:Pythonで単一のAMQPメッセージを待機しています
これと同様の質問があります。py-amqp/flopsyでは、「永遠に待つつもりです。メッセージが届くたびにこのコールバックを呼び出したい」と言うのは簡単ですが、見つかりません。 「OK、今すぐ待ちたいメッセージが届きました」という言い方をします。(多分GOTO?冗談です...)これを行うためのエレガントな方法はありますか?
messaging - AMQPとWebsphereMQ
キューイング用にAMQPをサポートするアプリケーションに取り組んでいます。一部のクライアントはWebsphereMQを使用しています。私は、これら2つのプロトコルが機能的にどのように互換性があるかを大まかに疑問に思っています。私はセロリを使用しています。これにより、Websphere MQバックエンドを記述できる限り、下位レベルのものを抽象化できるはずです。私が理解しようとしているのは、これがどれほど難しいかということです。
Websphere MQはAMQPの機能のスーパーセットを提供しますか?どちらかが私の人生を困難にするかもしれない「特徴」を持っていますか?
amqp - DDS 対 AMQP 対 ZeroMQ
私の評価と懸念が正しいかどうかについてのフィードバックが必要でした。
私は、データセンターでデータトランスポート層を構築するために、Data Distribution Service、AMQP、および ZeroMQ の 3 つを調査してきました。3 つすべてが有望に見えますが、ブロックの問題がいくつか発生しました。
コンテキストを与えるために、私の要件は次のとおりです。
- 500 以上の物理ノード、1000 以上のパブリッシャーとサブスクライバーまで拡張できます。
- メッセージの永続的な配信をサポートして、失敗したサブスクライバーに対処します。
- 集約されたスループットは、1 秒あたり 100 万メッセージ以上である必要があります
AMQP の問題:
- ブローカ アーキテクチャは、デプロイメント セットアップ全体におけるボトルネックであり、障害の中心点であるようです。保留中のメッセージのパフォーマンスと可用性を向上させるためにフェデレーションとクラスターを配置することで展開を複雑にすることができますが、それでもフェイルプルーフではないようです。
- 永続キューのパフォーマンスは非常に低いようです。私のサンプル アプリケーションは、6 ~ 7K のメッセージ/コア/キュー/アプリケーションしかクロックできませんでした。
ZeroMQ の問題:
- ドキュメンテーションは、少し深く掘り下げているようです。
- 保留中のメッセージに対するシステムの動作は、PUB/SUB モデルの通信で問題を引き起こすようです。参照してください: zeromq が PUB/SUB モードで遅いコンシューマを処理する方法
OpenSplice DDS: 業界での採用を除いて、DDS プロトコルに欠けているものは何も見つかりませんでした。安定性、パフォーマンス、または制限に関して、この製品の直接のレビューを知りたい.
content-type - RabbitMQ のコンテンツ タイプ ヘッダーには特別な意味がありますか?
RabbitMQ のコンテンツ タイプ ヘッダーには特別な意味がありますか?それとも、プロデューサーとコンシューマーが送信するデータの種類を通知するための標準化された方法にすぎませんか? 言い換えれば、特定のコンテンツ タイプのメッセージは特別な扱いを受けるのでしょうか、それとも単なるバイトなのでしょうか?
python - RabbitMQ と Python を使用したコンテンツベースのルーティング
RabbitMQ と Python でコンテンツベースのルーティングを行うことは可能ですか?
AMQP 標準と RabbitMQ はコンテンツ ベースのルーティングをサポートすると主張していますが、コンテンツ ベースのバインディングなどの指定をサポートする Python 用のライブラリはありますか?
私が現在使用しているライブラリ (py-amqplib http://barryp.org/software/py-amqplib/ ) は、単純なパターン マッチング (#、*) によるトピックベースのルーティングのみをサポートしているようです。
benchmarking - RabbitMQメッセージコンシューマーはメッセージの消費を停止します
私たちのチームは、ActiveMQまたはRabbitMQのどちらかを選択するための急上昇中です。16個の文字列の配列、タイムスタンプ、および2つの整数を含むオブジェクトメッセージを送信する2つの小さなプロデューサー/コンシューマースパイクを作成しました。スパイクは開発者のマシンでは問題ありません(メッセージは十分に消費されています)。
それからベンチが来ました。私たちのマシンでは、多くのメッセージを送信しているときに、消費者が時々ぶら下がっていることに最初に気づきました。そこにありましたが、メッセージがキューに蓄積されていました。
ベンチプレートフォームに行ったとき:
- 2台のrabbitmqマシンのクラスター4コア/3.2Ghz、4Gb RAM、VIPによる負荷分散
- 1〜6人のコンシューマーがrabbitmqマシンで実行され、メッセージをmysql DB(DBと同じタイプのマシン)に保存します。
- 12台のASマシン(tomcat)で実行されている12人のプロデューサーが、別のマシンで実行されているjmeterで攻撃されました。同じ負荷のRabbitMQメッセージを生成するサーブレットでは、負荷は1秒あたり約600〜700のhttpリクエストです。
時々 、消費者がハングすることに気づきました(まあ、彼らはブロックされていませんが、彼らはもうメッセージを消費しません)。各コンシューマーがデータベースに約100msg/秒を保存するため、消費を停止すると、DBに保存される1秒あたりのメッセージ全体が同じ比率で減少することがわかります(たとえば、3人のコンシューマーが停止すると、約600msgに減少します。 /秒から300msg/秒)。
その間、プロデューサーは問題なく、jmeterレート(約600msg /秒)でプロデュースします。メッセージはキューにあり、まだ「生きている」消費者によって受け取られます。
最初にすべてのサーブレットをプロデューサーにロードしてから、すべてのコンシューマーを1つずつ起動し、接続に問題がないかどうかを確認してから、jmeterを実行します。
1つの直接取引所にメッセージを送信しています。すべてのコンシューマーは、交換にバインドされた1つの永続キューをリッスンしています。
その点が私たちの選択にとって重要です。これをrabbitmqで見たことがありますか?何が起こっているのかわかりますか?
ご回答ありがとうございます。
ruby - RabbitMQ/AMQP 未処理チャネル エラー - NOT_FOUND
Ruby スクリプト ( Bunnyを使用) から RabbitMQ にメッセージを発行し、node.js サーバー ( node-amqpを使用) からメッセージを消費しようとしています。
最初のメッセージは正常に到着しますが、node.js 内にエラーが記録され、接続が閉じられ、それ以上のメッセージは受信されません。
2 つのメッセージを交換に公開してから node.js サーバーを実行すると、エラーがログに記録される前に両方のメッセージが到着することがわかります。これは、RabbitMQ が空のときに交換またはキューを閉じていることを示唆しています。ただし、これらの両方で autoDelete を false に設定しているため、そうすべきではありません。
助言がありますか?
私の node.js スクリプトは次のようになります。
私の Ruby スクリプトは次のようになります。
activemq - 構築済みのAMQPおよびSTOMPクライアント(GUIクライアントの場合と同様)
MQサーバーで遊んでそのセマンティクスに慣れるためのクライアント(クライアントライブラリではなくGUIクライアントのように)を探しています。ボタン(またはテキストコマンド)を押すだけでメッセージを送受信し、サーバーのキューとメッセージのステータスについて更新するものもあります。管理はボーナスになります。UIはグラフィカルである必要はありません(つまり、コマンドラインクライアントで問題ありません)。
サーバーはおそらくRabbitMQを実行するので、ActiveMQと同様に、RabbitMQ固有のものはすべて問題ありません。しかし、私はむしろ一般的なAMQPまたはSTOMPツールが欲しいです。
それで、そのようなものは存在しますか?
一部の管理ツールと監視ツールには両方のサーバーディストリビューションが付属していますが、クライアントは付属していません。
android - AMQP + Android ライブラリ
Android 用のamqpライブラリはありますか?