web-dev-qa-db-fra.com

Kafka décalages de consommation hors limites sans politique de réinitialisation configurée pour les partitions

Je reçois une exception au démarrage Kafka consumer.

org.Apache.kafka.clients.consumer.OffsetOutOfRangeException: décalages hors plage sans politique de réinitialisation configurée pour les partitions {test-0 = 29898318}

J'utilise Kafka version 9.0.0 avec Java 7.

12
basit raza

Vous essayez donc d'accéder à l'offset (29898318) dans la partition topic (test) (0) qui n'est pas disponible pour le moment.

Il pourrait y avoir deux cas pour cela

  1. Votre partition de sujet 0 peut ne pas avoir autant de messages
  2. Votre message à l'offset 29898318 peut-être déjà supprimé par période de conservation

Pour éviter cela, vous pouvez effectuer l'une des opérations suivantes:

  1. Ensemble auto.offset.reset configuration à smallest ou largest. Vous pouvez trouver plus d'informations à ce sujet ici
  2. Tu peux recevoir smallest offset disponible pour une partition de sujet en exécutant la commande suivante Kafka outil de ligne de commande

commande:

bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list <broker-ip:9092> --topic <topic-name> --time -2

J'espère que cela t'aides!

18
avr

J'ai frappé cette question SO lors de l'exécution d'une Kafka Streams store d'état avec une configuration de rubrique de journal des modifications spécifique:

  • cleanup.policy=cleanup,delete
  • conservation de 4 jours

Si Kafka Streams a toujours un fichier d'instantané pointant vers un décalage qui n'existe plus, le consommateur de restauration est configuré pour échouer . Il ne revient pas à le décalage le plus ancien. Ce scénario peut se produire lorsque très peu de données arrivent ou lorsque l'application est arrêtée. Dans les deux cas, lorsqu'il n'y a pas de validation pendant la période de conservation du journal des modifications, le fichier de capture instantanée ne sera pas mis à jour. (C'est sur la base de la partition )

Le moyen le plus simple de résoudre ce problème consiste à arrêter votre application de flux kafka, à supprimer son répertoire d'état local et à redémarrer votre application.

2
Tim Van Laer