web-dev-qa-db-fra.com

Supprimer le message après l'avoir consommé dans KAFKA

J'utilise Apache kafka pour produire et consommer un fichier de 5 Go. Je veux savoir s'il existe un moyen de supprimer automatiquement le message du sujet après sa consommation. Dois-je aucune façon de garder une trace des messages consommés? Je ne veux pas le supprimer manuellement.

32
Shaik Mujahid Ali

À Kafka, la responsabilité de ce qui a été consommé est la responsabilité du consommateur et c'est aussi l'une des principales raisons pour lesquelles Kafka a une si grande évolutivité horizontale.

L'utilisation de l'API grand public le fera automatiquement pour vous en validant les décalages consommés dans Zookeeper (ou une option de configuration plus récente utilise une rubrique spéciale Kafka pour garder une trace des messages consommés).

La simple API grand public vous permet de déterminer comment et où suivre vous-même les messages consommés.

La purge des messages dans Kafka se fait automatiquement en spécifiant un temps de rétention pour un sujet ou en définissant un quota de disque pour celui-ci donc pour votre cas d'un fichier de 5 Go, ce fichier sera supprimé après la la période de conservation que vous définissez est passée, qu'elle ait été consommée ou non.

38
Lundahl

Selon ma connaissance, vous pouvez Supprimer les données consommées des journaux en réduisant le temps de stockage. L'heure par défaut pour le journal est définie pour 168 heures, puis les données sont automatiquement supprimées du Kafka-Topic que vous avez créé. Donc, ma suggestion est de réduire le passage au server.properties qui se trouve dans le dossier config et changez le 168 en un temps minimum. il n'y a donc pas de données après la durée spécifique que vous avez définie pour log.retention.hours. Votre problème sera donc résolu.

log.retention.hours = 168

Continuez à coder

5
syed jameer