問題タブ [rabbitmq]
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.
locking - ZooKeeperとRabbitMQ/Qpidを一緒に-やり過ぎですか、それとも良い組み合わせですか?
ご挨拶、
マルチデータセンター分散システムのいくつかのコンポーネントを評価しています。(RabbitMQまたはQpidのいずれかを介して)メッセージキューを使用するため、エージェントは、アドレス指定、ルーティング、負荷分散、または再送信について心配することなく、他のエージェントに対して非同期要求を行うことができます。
多くの場合、エージェントは高度な同時アクセス用に設計されていないコンポーネントと対話するため、競合状態を回避するためにロックとエージェント間の調整が必要になります。また、エージェントまたはデータセンターの障害にシステムが自動的に対応するようにします。
上記のユースケースを念頭に置いて、ZooKeeperは適切であるように思われました。しかし、ZKとメッセージキューの両方を使おうとするのはやり過ぎではないかと思います。Zookeeperが行うことは、AMQPメッセージングを使用して自分のクラスターマネージャーで実行できるようですが、それを正しく行うのは難しいでしょう。一方、ZooKeeperを使用してメッセージキューを実装した例をいくつか見てきましたが、RabbitMQ/Qpidの方が自然に適していると思います。
誰かがこのような組み合わせを使用したことがありますか?
前もって感謝します、
-クリス
bash - bash スクリプトの次の行は何をしますか?
通常は Windows で動作しますが、Mac で RabbitMQ をセットアップしようとしています。誰かが私に下の行が何をするのか教えてもらえますか?
[ "x" = "x$RAB..."]
具体的には、構文に興味があります。
queue - ピーク、完了としてマークしてから削除するためのオープン ソース キューイング ソリューション
次のことを可能にするオープンソースのキューイングプラットフォームを検討しています: 複数のプロデューサー、複数のコンシューマーが、特定のユースケースでマルチスレッド環境のキューにデータを入れています: コンシューマーが次のことを実行できるようにしたい
- キューからのメッセージをピークします (他のコンシューマーが同じメッセージを消費できないように、メッセージをキューで非表示としてマークする必要があります)。
- コンシューマーは、消費されたメッセージを処理し、正常に処理できる場合は、メッセージを消費済みとしてマークし、キューから完全に削除する必要があります。
- メッセージを消費済みとしてマークした後、コンシューマーが突然終了した場合、または特定のタイムアウト後に消費の成功を確認できなかった場合、別のコンシューマーがそれを取得できるように、メッセージは再びキューに表示されます。
RabbitMQ、hornetQ、ActiveMQ を見てきましたが、この機能をすぐに使えるかどうかわかりません。この機能を提供するシステムに関する推奨事項はありますか?
python - 複数のコンシューマーを持つキューからのメッセージをシリアル化する RabbitMQ
共有モードで設定されたキューに複数のコンシューマがバインドされているという問題があります。問題は、rabbitmq がメッセージをシリアライズしているように見えることです。つまり、一度に実行できるコンシューマーは 1 つだけです。これを平行にする必要がありますが、方法がわかりません。
各コンシューマは独自のプロセスで実行されています。キューには大量のメッセージがあります。私は py-amqplib を使って RabbitMQ とやり取りしています。
何かご意見は?
.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
いますが、それには昇格された特権が必要です。
プログラムでキューをリストする方法を見つけることができなかったので、データベースに名前のリストを保持しています。それは機能しますが、醜いです。
python - Celery の PeriodicTask run() メソッドへの独自のパラメーター
私は小さな Django アプリケーションを書いています。モデル オブジェクトごとに、一定の間隔で実行される定期的なタスクを作成できるはずです。私はこれにCeleryアプリケーションを使用していますが、1つのことを理解できません:
それから私は次のことをしています:
最初の呼び出しは成功しましたが、エラーを返す他の定期的な呼び出し - TypeError: run() は、celeryd サーバーでキーワード以外の引数を 2 つ (1 つ指定) 取ります。独自のパラメーターを PeriodicTask に渡すことはできますrun()
か?
activemq - MQとは何ですか?なぜそれを使用したいのですか?
私の職場のチームでは、アプリケーション間の通信にIBMMQテクノロジーを頻繁に使用しています。最近、Hacker Newsや、 RabbitMQのような他のMQテクノロジーに関する他の場所で見ました。私はそれが何であるか(メッセージを入れたり受け取ったりするために一般的にチェックされる領域)について基本的な理解を持っていますが、それが正確に何が得意なのか知りたいですか?どこでいつ使用したいかをどうやって知ることができますか?より基本的な形式のプロセス間メッセージングに固執しないのはなぜですか?
rabbitmq - データストアとプロデューサー間のプロキシとしてのRabbitMQ?
データベースに保存する必要がある大量のデータを生成するコードがあります。問題は、データベースが生成されたデータを保持できないことです。したがって、ある種のキューイングメカニズムがこの状況で役立つかどうか疑問に思っています-特にRabiitMQで考えており、一部の消費者がデータを取得してデータベースにプッシュするまで、データをキューに保存することが可能かどうかを考えています. また、同じデータがすぐに更新されるため、そのデータがデータベースに作成されたかどうかには特に関心がありません。