2016-06-23 5 views
0

私はRabbitMQの消費者(受信機)に関する2つの質問している:1、消費者がメッセージダウンしている場合ように、どのように私は、特定のキューに登録されている消費者は何をしている(静的キューから)うさぎのMQコンシューマーはどのように機能しますか?

  1. を定義することができますその消費者が再び起きた後も引き続き配送されるか、これを達成するための他の方法がありますか?
  2. 消費者はまだ作成されていないキューに接続しますが、rabbitmqチュートリアルではプロデューサの前に消費者を呼び出すことはできますが、それでも動作します。あなたが望むものを達成するために

おかげ

答えて

2
  1. が、これは(ちょうどあなたが自動認識していないことを確認してください)のRabbitMQの設計によるもので、簡単です。メッセージは確認されるまでキューに残ります。したがって、基本的には、消費者はメッセージの処理を終了し、それを認識する必要があります。処理中に消費者が死亡した場合、メッセージはACKされず、再キューに入れられます。次回は、消費者はそれを受け取る。もちろん、単純化するために同じ(消費者のために)複数のインスタンスがある場合、上にあるものは再キューに入れられたメッセージを取ります。うまく説明されているのはin the second tutorial on rmq websiteです。

  2. キューの宣言は冪等動作であり、キューがまだ存在しない場合は作成されます。消費者が最初にキューを作成する場合は、実際にはのように動作します。パブリッシャーは実際にはキューについて知っていなくても(必要がある)、エクスチェンジとルーティングキーだけを気にします。誰かが聞いているかどうか気にしなくても、単にメッセージを公開するだけです。消費者は、どのルーティングキーをキューにバインドするかを指示する必要があります。

関連する問題