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.
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
0
peut ne pas avoir autant de messages29898318
peut-être déjà supprimé par période de conservationPour éviter cela, vous pouvez effectuer l'une des opérations suivantes:
auto.offset.reset
configuration à smallest
ou largest
. Vous pouvez trouver plus d'informations à ce sujet icismallest offset
disponible pour une partition de sujet en exécutant la commande suivante Kafka outil de ligne de commandecommande:
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!
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
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.