web-dev-qa-db-ja.com

KAFKAでメッセージを消費した後にメッセージを削除する

私はApache kafka=を使用して5GBのサイズのファイルを生成および消費しています。トピックからのメッセージが消費後に自動的に削除される方法があるかどうかを知りたいです。消費されたメッセージを追跡する方法はありますか?手動で削除したくありません。

32

カフカでは、消費されたものの責任は消費者の責任であり、これもKafkaが非常に優れた水平スケーラビリティを持っている主な理由の1つです。

高レベルのコンシューマーAPIを使用すると、Zookeeperで消費されたオフセットをコミットすることで自動的にこれが行われます(または、最近の構成オプションが消費されたメッセージを追跡する特別なKafka=トピックによって使用されています).

シンプルなコンシューマAPIにより、消費されたメッセージを自分で追跡する方法と場所を処理できます。

Kafkaのメッセージのパージは、トピックの保持時間を指定するか、ディスククォータを定義することで自動的に行われるため、5GBファイルが1つの場合、このファイルは定義した保持期間は、消費されたかどうかに関係なく経過しています。

38
Lundahl

私の知る限りでは、削除ストレージ時間を短縮することにより、消費されたデータがログを形成します。ログのデフォルトの時間は168時間に設定され、データは作成したKafka-Topicから自動的に削除されます。したがって、私の提案は、server.propertiesこれはconfigフォルダーにあり、168を最小時間に変更します。 log.retention.hoursに設定した特定の時間が経過すると、データはなくなります。したがって、問題は解決します。

log.retention.hours = 168

コーディングを維持

5
syed jameer