Kafka 0.10 を使用しています...enable.auto.commit が TRUE の場合に、kafka でオフセットがどのように管理されるかについて、オンライン (およびドキュメント) で矛盾する情報がいくつか見られます。メッセージを取得する同じ poll() メソッドは、構成された間隔でコミットも処理しますか?
シングル スレッド アプリケーションで poll からメッセージを取得する場合、同じスレッドでメッセージを処理して (処理エラーを含めて) 完了します。つまり、処理が完了するまで poll() は再度呼び出されません。メッセージを失うことで、正しいですか?これは、poll() が後続の呼び出しでコミットを試みる場合にのみ機能します (もちろん、auto.commit.interval.ms が経過した場合)。メッセージを受信するとすぐに(アプリがメッセージを処理する前に)コミットが行われた場合、これは機能しません....
自動コミット ポリシーを使用してもメッセージが失われないことを確認したいので、これは重要です。重複したメッセージは許容できますが、データの損失は許容できません。
明確にしてくれてありがとう!