問題タブ [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.
python - RabbitMQ サーバーでタイムアウト検出を設定するには?
このpythonバインディングでRabbitMQを試しています。
私が気づいたことの 1 つは、(クラッシュしたプログラムをエミュレートして) コンシューマーを不当に殺すと、サーバーはこのコンシューマーがまだ長い間存在していると見なすことです。この結果、他のすべてのメッセージは無視されます。
たとえば、コンシューマーを 1 回強制終了して再接続すると、1/2 のメッセージが無視されます。別のコンシューマーを強制終了すると、メッセージの 2/3 が無視されます。3 番目を殺すと、3/4 メッセージは無視されます。
確認応答をオンにしてみましたが、効果がないようです。私が見つけた唯一の解決策は、サーバーを手動で停止してリセットすることです。
より良い方法はありますか?
このシナリオを再現する方法
amazon-ec2 - RabbitMQ インスタンスが実行されている EBS ボリュームのスナップショットを適切に作成するにはどうすればよいですか?
EC2 インスタンスで RabbitMQ を使用しており、EBS ボリュームに Mnesia テーブルがあるため、スナップショットを作成して同じデータで別のインスタンスを起動しようとすると、テーブルが別の RabbitMQ インスタンスによって使用されているように見えます。
これを回避して、フラッシュ/スナップショットのためにRabbitMQをシャットダウンし、完了したら再び起動する唯一の方法はありますか?
ファイルがロックされているように見えたり、強制的にロックが解除されたりしないように、ファイルをクリーンアップする方法はありますか?
これは私が直面する一般的な問題ではなく、より良い解決策があるかどうかに興味があります.
明確にするために、表示されるエラーは次のとおりtimeout_waiting_for_tables
です。
php - PHP アプリの非同期/エンタープライズ メッセージング
PHP と Java アプリ間の非同期メッセージ キューイング (パブリッシュ、コンシューム) に最適なメッセージング プラットフォームはどれですか? 私は、RabbitMQ、ActiveMQ、OpenAMQ、Tibco Rendezvous、および Websphere MQ を見てきました。持続性が必要です。AMQP のアイデアとオープン プロトコルの使用は気に入っていますが、RabbitMQ の安定性の問題について聞いたことがあります。RabbitMQ は、主要な AMQP 実装のようです。
メッセージングの負荷は「Twitter スタイル」の規模にはなりませんが、かなりの量になり、非常に高い可用性が必要になります。
公式にサポートされている PHP API は間違いなくポイントを獲得します。Java と PHP の両方のシステムが積極的に生産と消費を行います。
ubuntu-9.04 - 2台のubuntu 9.04マシンにまたがるrabbitmqクラスターの問題
pending_to_contact_cluster_nodes エラーが発生し続けます
これを以前に見て解決した人はいますか?
ubuntuリポジトリを使用してインストールされたrabbitmq-server 1.5.4を使用しています。これは、ubuntuでデフォルトで有効になっているufwまたはその他のネットワークセキュリティ対策と関係があり、接続を妨げているという予感があります。
マシンは ping 可能です (/etc/hosts ファイルにエントリを作成しました)
pgatram@mzl005:~$ ping mz005 PING mz005 (192.168.0.22) 56(84) バイトのデータ。mz005 (192.168.0.22) からの 64 バイト: icmp_seq=1 ttl=64 time=0.026 ms mz005 (192.168.0.22) からの 64 バイト: icmp_seq=2 ttl=64 time=0.023 ms ^C --- mz005 ping 統計 -- - 2 パケット送信、2 受信、0% パケットロス、時間 999ms rtt min/avg/max/mdev = 0.023/0.024/0.026/0.005 ms
クラスターを機能させることができません
pgatram@mzl005:~$ sudo rabbitmqctl cluster rabbit@mz005 [rabbit@mz005] を使用したノード rabbit@mzl005 のクラスタリング ... エラー: {unable_to_contact_cluster_nodes,[rabbit@mz005]}
activemq - 商用メッセージングミドルウェアとオープンソースの利点
私は、RabbitMQ、ActiveMQ、OpenAMQなどのいくつかのオープンソースメッセージキューテクノロジを評価してきました。私の質問は、Activeなどの代わりにTibco EMS、WebSphereMQ、Sonicなどの商用テクノロジを使用することでどのようなメリットが得られるかです。またはウサギ?PHPが関係する主要言語になりますが、Javaシステムも相互作用します。
rabbitmq - AMQP のキューごとの一意のメッセージ?
これはこの他の質問に似ていますが、少しひねりがあります: AMQP メッセージのメッセージ ID はアプリケーション自体で設定する必要があるという仕様を読んだので、理論的にはそれを使用してある程度の一意性を保証できます。 、 右?
私の主な質問は次のとおりです。そのメッセージ ID はどの範囲で一意であることが保証されていますか? 特定のキュー内に現在エンキューされているメッセージの場合は? すべてのキューで?宇宙を超えて?:-)
また、この動作は標準化されていますか? ここではRabbitMQを使用する予定ですが、ベンダー固有ではないものがあるといいでしょう:-)
ありがとう。
ruby-on-rails - Workling processes multiplying uncontrolably
We have a rails app running on passenger and we background process some tasks using a combination of RabbitMQ and Workling. The workling's worker process is started using the script/workling_client
command. There is always only one worker process started, and the script/workling_client
has a :multiple => false
options, thus allowing only one instance. But sometimes, under mysterious circumstances which I haven't been able to track down, more worklings spawn up. If I let the system run for some time, more and more worklings appear. I'm not sure if these rogue worklings cause any problems, but it is still unsettling not to know why is it happening. We are using Monit to monitor the workling process. So if it dies, it will spawn it up again. But this still does not explain how come there are suddenly more than one of them.
So my question is: does anyone know what can be cause of this and how to make it stop? Is it possible that workling sometimes dies by itself, without deleting it's pid file? Could there be something wrong with the Daemons gem workling_client
is build upon?
python - py-amqplib を使用して複数のキューでメッセージを待機する方法
Python で RabbitMQ にアクセスするためにpy-amqplibを使用しています。アプリケーションは、特定の MQ トピックをリッスンする要求を時々受け取ります。
このようなリクエストを初めて受信すると、AMQP 接続とチャネルを作成し、新しいスレッドを開始してメッセージをリッスンします。
AMQPListenerは非常に単純です。
接続を作成した後、次のように、関心のあるトピックにサブスクライブします。
これで初めて、すべて正常に動作します。ただし、後続の別のトピックへのサブスクライブ要求では失敗します。後続のリクエストでは、AMQP 接続と AMQPListener スレッドを再利用し (トピックごとに新しいスレッドを開始したくないため)、channel.queue_declare()メソッド呼び出しの上のコード ブロックを呼び出しても戻りません。また、その時点で新しいチャネルを作成しようとしましたが、connection.channel()呼び出しも返されません。
私がそれを機能させることができた唯一の方法は、トピックごとに新しい接続、チャネル、およびリスナー スレッド (つまり、routing_key) を作成することですが、これは実際には理想的ではありません。どういうわけか接続全体をブロックしているのは wait() メソッドだと思いますが、どうすればよいかわかりません。単一のリスナー スレッドを使用して、複数のルーティング キー (または複数のチャネル) を持つメッセージを受信できるはずですか?
関連する質問:トピックが不要になった場合、リスナー スレッドを停止するにはどうすればよいですか? メッセージがない場合、 channel.wait() 呼び出しは永久にブロックされているように見えます。私が考えることができる唯一の方法は、ダミーメッセージをキューに送信して「毒」することです。リスナーによって停止の合図として解釈されます。
rabbitmq - AMQP/ZeroMQ/RabbitMQ を使用する理由
独自のライブラリを作成するのとは対照的です。
ここでは、自己分割サーバー プールとなるプロジェクトに取り組んでいます。1 つのセクションが重くなりすぎると、マネージャーはそれを分割し、別のプロセスとして別のマシンに配置します。また、これが影響を与えるすべての接続済みクライアントに、新しいサーバーに接続するように警告します。
サーバー間およびプロセス間通信に ZeroMQ を使用することに興味があります。私のパートナーは自分でロールすることを好みます。この質問に答えるコミュニティを探しています。
私自身かなり初心者のプログラマーで、メッセージング キューについて学んだばかりです。私がググって読んだように、誰もがあらゆる種類のメッセージキューを使用しているようですが、なぜですか? 独自のライブラリを作成するよりも優れている点は何ですか? なぜそれらはとても一般的で、なぜそんなにたくさんあるのですか?
php - 複数のコンシューマ 1 つのキュー
RabbitMQ で複数のコンシューマーが 1 つのキューを共有することは可能ですか? 現在、このphpライブラリを使用してRabbitMQを操作していますが、消費者スクリプトの2つの同一のインスタンスが実行されていますが、渡されたメッセージに応答するのは1つだけです...