が存在しません。消費者がRabbitMQのにチャネルからメッセージを取得すると、ここで、プリフェッチメッセージは、私はRabbitMQの</p> <p>prefetchCountの構成の下有する
私は1つの交換を持ち、その交換に1つのキューが接続され、そのキューに1つのコンシューマが接続されています。キューが複数のメッセージを持っている場合、私の理解に従って以下のステップが実行されます。
- チャネルのキュー書き込みデータ。
- ack-modeは自動です。キューがメッセージをチャネルに書き込むとすぐに、メッセージはキューから削除されます。
- メッセージは消費者に届き、そのデータを消費者が実行し始めます。
- キューは、前のメッセージの確認応答を受け取りました.Queueは、次のデータをチャネルに書き込みます。
ここで私の疑いは、消費者が以前のデータでまだ終了していないとします。その次のデータキューがチャネルに書き込まれてどうなるでしょうか?
また、prefetchCountが10で、コンシューマがキューに接続されている場合、これらの10個のメッセージが常駐するとしますか?
私たちの現在のプロジェクトでは、以下のようなシナリオがあります。キュー内の任意の時間に、A→B→Cのようなレコードがあるとします。レコードCはAの処理のみが処理されています。この実装は同じですか?前のレコードを見つけたら消費者側のレコードを処理していますが、レコードを再度エンキューします(-nackを送信するのではなく、交換によってキューに入れます)。それはキューレコードをC-> A-> Bとします.Aの後にCが処理されます。 – Nishat
ありがとうございます!別の質問がある場合は、新しい質問として投稿することをお勧めしますので、回答をもっと簡単に求めることができます。私は、説明されたシナリオが、メッセージングだけのためにちょっと畳み込まれているように思われることを述べます。 – theMayer