次の構成とシナリオでは、maxAttemptsに達したときにはどうなりますか?消費者のmaxAttemptsに達した場合はどうなりますか?
スプリングクラウドカフカとストリーム結合し、以下の特性:
- spring.cloud.stream.bindings.input.consumer.maxAttempts = 3
- spring.cloud.stream.kafka.bindings.input .consumer.autoCommitOffset =真
- spring.cloud.stream.kafka.bindings.input.consumer.autoCommitOnError = falseを
- spring.cloud.stream.kafka.bindings.input.consumer.enableDlq = falseを
ここでのシナリオは次のとおり@StreamListener注釈を介し
- 消費者は、従来の注釈付きメソッドから戻るまで、メッセージ・ペイロード
- を受信し、消費者は、データベースがダウンしているデータベース
- にメッセージを永続化しようとします実行時例外が@StreamListener注釈付きメソッドからスローされます
私が見ている動作は、maxAttemptsの制限に達するまでメッセージを再試行することです。その後、私はサービスを再開するまで何も起こりません。再起動すると、メッセージは再消費されます。
maxAttemptsに達した後にdbが再び利用可能になるとどうなりますか?サービスを再開するための唯一のオプションはありますか? maxAttemptsを無限に設定する方法はありますか?
私は、私は完全にあなたが誤ったメッセージを自動コミットしないように設定するので、実際に予想される動作である行動