My spring-boot application(consumer)
Apache Kafka
からメッセージを処理します。定期的に、マッサージは処理され、消費者が例外をスローできません。とにかく消費者はオフセットをコミットします。カフカの失敗メッセージから成功メッセージを区別できますか?私は考えられないと思います。それは本当ですか?それが本当なら、私は主な質問をしています:
どのようにして再試行する方法 失敗メッセージ?私はいくつかの方法を知っていますが、私は彼らの正確さがわからない。
1)オフセットを早く変更します。しかし、このようにして成功メッセージも再試行します。
2)例外をキャッチすると、このメッセージを別のトピックに送信します(たとえば、エラートピック)。しかし、それは難しいです。
3)何か他のもの(あなたの変種)
少なくとも一度保証が必要な場合は、一般的なパターンは次のとおりです。
enable.auto.commit
をfalseに設定)メッセージごとに:
繰り返す
SeekToCurrentErrorHandler を使用してください。オフセットを再配置してメッセージを再生します(デフォルトでは10回、設定可能)。
再試行が枯渇した後、それは deadletterpublishingrecoverer のようないくつかの行動をとることができる「回復者」を呼び出します。