RabbitMQ で Spring Cloud Reactive Streams を使用しています。
Spring Reactive Stream は、メッセージをキューから取り出すとすぐにメッセージを確認しているように見えます。そのため、メッセージ処理中に発生する未処理の例外のエラーは、アプリケーションで処理する必要があります (これは、未処理の例外がスローされる可能性があり、メッセージが拒否される可能性がある非反応性ストリームとは異なるため、デッド レター キューに送信されます)。 )。
メッセージの送信中にアプリケーションが突然シャットダウンした場合、どのように対処すればよいでしょうか?
例えば:
- アプリケーションがメッセージをキューから取り出します
- アプリケーションはメッセージを確認済みとしてマークします
- アプリケーションがメッセージ処理を開始します
- メッセージ処理が完了する前にアプリケーションがシャットダウンされた
これが発生すると、メッセージは完全に失われたように見えます。これは、メッセージがキューから外れているにもかかわらず、アプリケーションが停止しているためです。これらのメッセージを回復するにはどうすればよいですか?