7

RabbitTemplate クラスを使用して、Spring amqp で RabbitMQ キューに書き込みを行っています。convertAndSend メソッドを使用してメッセージをキューに送信します。これは通常の状況ではうまく機能しますが、キューが存在しない場合は黙って失敗するようです。例外はスローされず、エラー/デバッグ メッセージはロガーに記録されません。

メッセージが配信されたことを確認するにはどうすればよいですか?

コードが現在行っていることの例を次に示します。

RabbitTemplate template = new RabbitTemplate(factory);
template.setQueue(queueName);
template.setRoutingKey(queueName);
template.convertAndSend(message);
4

2 に答える 2

4

メッセージを受け入れるキューがバインドされていないブローカーに、RabbitMQ クライアントがメッセージを送信することはエラーではありません。RabbitMQ はそれを黙ってドロップし、クライアントは賢明ではありません。メッセージに関心のあるキューがない場合、ブローカーは他に多くのオプションを利用できません。

そうは言っても、必須フラグを設定することで、メッセージが黙ってドロップされてしまう場合、RabbitMQ に文句を言わせることができます。Spring AMQP インターフェイスがサポートしているかどうかはわかりませんが、RabbitMQ Java クライアント ライブラリで利用できることは確かです。

于 2011-12-12T18:05:27.970 に答える
1

mandatoryパブリッシャーの返品 (配信不能メッセージの場合) を使用して有効にすることもできます。

于 2014-04-26T19:54:48.080 に答える