私はkafkaトピックからの消費にKafkaMessageListenerContainerを使用していますが、他のマイクロサービスにも依存する各レコードを処理するアプリケーションロジックがあります。私は今、各レコードが処理された後、オフセットを手動でコミットしています。Springカフカコンシューマ、実行時にオフセットをシークしますか?
私はアプリケーションロジックが失敗した場合、失敗したオフセットを探し、成功するまで処理を続ける必要があります。そのためには、最後のオフセットの実行時手動検索を行う必要があります。
これはKafkaMessageListenerContainerでまだ可能ですか?
アプリケーションロジックの後にオフセットをコミットしています。したがって、アプリケーション・ロジックに障害が発生した場合にオフセットをコミットしないと、オフセットは先に進まず、同じメッセージを再度処理します。これはあなたの問題を解決しますか? – yaswanth
@yaswanthいいえ、それは私が推測するように動作しません。私はそれをテストするまであなたと同様の前提を持っていました。私はENABLE_AUTO_COMMIT_CONFIGを有効にしました - 偽 とAcknowledgingMessageListenerを持つAbstractMessageListenerContainer.AckMode.MANUAL_IMMEDIATEのコンテナプロパティ。 レコード1を送信し、次にレコード2をトピックに追加しました。レコード1 - アプリケーションロジックが失敗しました(私は返信しません)。この時点で、次の消費者アンケートはレコード1を再度取得しますが、レコード2を取得します。 configで固定されたものですparams私に教えてください! – sash
あなたは正しいです!私は今まで偽りの仮定の下にいます。 – yaswanth