2017-02-01 6 views
0

私は、rabbitmqの既存のキューに加入しているワーカーがいます。冗長性のために、同じキューに接続する別のワーカーを追加することにしました。既存のRabbitMQキューに排他的に接続する

第1ワーカーがキューとの排他接続を取得して、第2ワーカーがメッセージをデキューできず、スタンバイワーカーとして機能するように設定できますか?

+0

したがって、基本的には、1つのコンシューマだけが任意の時点でキューを消費したいと思っていますか? – cantSleepNow

+0

はい、フェイルオーバーとしてのワーカー – Jonny

答えて

0

まあ...キューを宣言すると、exclusiveフラグを設定できます。それはそれを宣言したクライアントにのみ "アクセス権"を与えます。

キューが既に存在するので、exclusiveフラグをtrueに設定して再度宣言することはできません(キューは他の誰かが消費するために事前作成されているため、このフラグはfalseです)。

一度に1つの消費者にしかならないと考えているソリューションはほとんどありません(私はなぜそれが1でなければならないのか尋ねませんでした)。 消費者を産んで、ただ1つだけが生きていることを確認する消費者ウォッチドッグを持っている人もいます。実際には、それは1つの消費者だけを監視し、ブロックされたり死んだ場合に再起動します。

また、consumer prioritiesで何か試してみて、優先消費者のプリフェッチが大きく、私はそれがあなたが必要とするものに適しているとは思わない。

関連する問題