2017-11-02 4 views
0

私はAcknowledgingMessageListenerを実装するシンプルなKafkaコンシューマを実装しました。 acknowledgment.acknowledge()があります。のonMessageメソッドで呼び出され、すべてがうまくいったり、回復可能な例外があったときに呼び出されます。この場合、すべてが機能します。承認後のカフカ消費者の回復.ACKnowledge();は呼び出されていません

しかし、物事が間違っていて、エラーがスローされる(私は捕まえない)かもしれません.JVMは、確認の前にonMessageメソッドでクラッシュする可能性があります。と呼ばれていました。

アプリケーションがクラッシュするが、再起動後、影響を受けるカフカのトピックからのメッセージは受信されません。カフカの再起動でさえ助けにならない、アプリケーションサーバーの再起動などは助けにはならないが、他のトピックはうまくいく。カフカは落ちない。

正しいKafkaコンシューマ(またはその他)の設定は、onMessageでこのようなクラッシュの後に再び動作するアプリケーションを取得しますか?私は承認されていないメッセージをもう一度受信し、その後まだ読み込まれていない他のすべてのメッセージを受信したいと思います。手動確認が重要です、私は自動確認応答モードを使用したくありません。

答えて

0

これは、私を助け:

server.properties

max.poll.interval.ms = 30000

session.timeout.ms = 40000

関連する問題