私は私のサービスでメッセージングにrabbitmqを使用しています。 2つのマイクロサービスAとBがあるとします。rabbitmq:メッセージはコンシューマによって消費されませんが、パブリッシャはメッセージを公開できます
さらに3つの交換があり、それぞれのキューがその間にあります。
Aは出版社であり、Bはここに消費者である。 Aからメッセージを送信している間は、キューに正常に更新されています(コンソールキューに表示されることが増えます)。しかし、ここでは消費者はメッセージを受け取ることができません。以前はそれが働いていました。
しかし、他の交換やキューでは、消費者はうまく動作しています。
私はキューを消去してアプリケーションを再起動しようとしましたが、私は助けませんでした。待ち行列には常に4つの未処理メッセージがあり、残りは実行準備ができています。最後に私はキューと交換とそれぞれのルーティングキーを削除し、同じを再作成しました。すべて正常に動作しています。
私はここで何が起こったのか教えてください。それはなぜ働かなかったのですか?
このような問題は、一般的にユーザーコードのどこかに立ち往生したスレッドによって引き起こされます。次回は、スレッドが何をしているのかを確認するためにスレッドダンプを取る。 –
コメントありがとう@GaryRussell ..リスナーのためのスレッドは、コスチューム2-3のメッセージであり、リスニングを止めました。その状態は、実行可能です..しかし、それは死んでいるように振る舞います:P ..次回は世話をするでしょう –